1.获取上个月第一天及最后一天.
echo date('Y-m-01', strtotime('-1 month'));
echo "<br/>";
echo date('Y-m-t', strtotime('-1 month'));
echo "<br/>";
上面的方法有些问题,根据bg5hfc回复做下修改
上个月第一天:
echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 month'));// 计算出本月第一天再减一个月
上个月最后一天:
echo date('Y-m-d', strtotime(date('Y-m-01') . ' -1 day')); // 计算出本月第一天再减一天
2.获取当月第一天及最后一天.
$BeginDate=date('Y-m-01', strtotime(date("Y-m-d")));
echo $BeginDate;
echo "<br/>";
echo date('Y-m-d', strtotime("$BeginDate +1 month -1 day"));
echo "<br/>";
3.获取当天年份、月份、日及天数.
echo " 本月共有:".date("t")."天";
echo " 当前年份".date('Y');
echo " 当前月份".date('m');
echo " 当前几号".date('d');
echo "<br/>";
4.使用函数及数组来获取当月第一天及最后一天,比较实用
function getthemonth($date)
{
$firstday = date('Y-m-01', strtotime($date));
$lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day"));
return array($firstday,$lastday);
}
$today = date("Y-m-d");
$day=getthemonth($today);
echo "当月的第一天: ".$day[0]." 当月的最后一天: ".$day[1];
echo "<br/>";
获取本月日期:
function
getMonth(
$date
){
$firstday
=
date
(
"Y-m-01"
,
strtotime
(
$date
));
$lastday
=
date
(
"Y-m-d"
,
strtotime
(
"$firstday +1 month -1 day"
));
return
array
(
$firstday
,
$lastday
);
}
|
$firstday是月份的第一天,假如$date是2018-2这样的话,$firstday就会是2018-02-01,然后根据$firstday加一个月就是2018-03-01,再减一天就是2018-02-28,用date()和strtotime()真是太方便了。
获取上月日期:
function
getlastMonthDays(
$date
){
$timestamp
=
strtotime
(
$date
);
$firstday
=
date
(
'Y-m-01'
,
strtotime
(
date
(
'Y'
,
$timestamp
).
'-'
.(
date
(
'm'
,
$timestamp
)-1).
'-01'
));
$lastday
=
date
(
'Y-m-d'
,
strtotime
(
"$firstday +1 month -1 day"
));
return
array
(
$firstday
,
$lastday
);
}
|
上月日期需要先获取一个时间戳,然后在月份上-1就OK了,超智能的date()会把2018-0-1这种东西转换成2017-12-01,太爽了。
获取下月日期:
function
getNextMonthDays(
$date
){
$timestamp
=
strtotime
(
$date
);
$arr
=
getdate
(
$timestamp
);
if
(
$arr
[
'mon'
] == 12){
$year
=
$arr
[
'year'
] +1;
$month
=
$arr
[
'mon'
] -11;
$firstday
=
$year
.
'-0'
.
$month
.
'-01'
;
$lastday
=
date
(
'Y-m-d'
,
strtotime
(
"$firstday +1 month -1 day"
));
}
else
{
$firstday
=
date
(
'Y-m-01'
,
strtotime
(
date
(
'Y'
,
$timestamp
).
'-'
.(
date
(
'm'
,
$timestamp
)+1).
'-01'
));
$lastday
=
date
(
'Y-m-d'
,
strtotime
(
"$firstday +1 month -1 day"
));
}
return
array
(
$firstday
,
$lastday
);
}
|
下月日期的代码看起来比较长一点,因为date()转不了类似2018-13-01这种东西,它会直接回到1970,所以前面需要处理一下12月的问题,除了12月就直接月份+1就OK啦。
总得来说,还是很方便的,日期函数太强大了。