日期操纵问题

时间:2012-07-10 06:41:48

标签: php date strtotime

我想知道上一个日历月的开始和结束日期。

所以,现在是2012年7月,我希望该功能在2012年6月1日作为开始时间返回2012年6月30日作为结束。

这是我的代码:

$current_month = date("Y-m-01 00:00:00");
$start_month = strtotime(date("Y-m-d", strtotime($current_month) . " -1 month"));
$end_month = strtotime(date("Y-m-d", strtotime($current_month) . " -1 second"));
echo "Start Month: " . date('Y-m-d',$start_month) . "( " . $start_month . ")<br>";
echo "End Month: " . date('Y-m-d',$end_month) . "( " . $end_month . ")<br>";

但它回应了:

Start Month: 2012-07-01( 1341093600)
End Month: 2012-07-01( 1341093600)

知道我做错了吗?

5 个答案:

答案 0 :(得分:1)

回答你发布的代码有什么不对,你只需要将你的圆括号移动一点就可以了。 :)

<?php
$current_month = date("Y-m-01 00:00:00");
$start_month = strtotime(date("Y-m-d", strtotime($current_month . " -1 month")));
$end_month = strtotime(date("Y-m-d", strtotime($current_month . " -1 day")));
echo "Start Month: " . date('Y-m-d',$start_month) . "( " . $start_month . ")<br>";
echo "End Month: " . date('Y-m-d',$end_month) . "( " . $end_month . ")<br>";
?>

答案 1 :(得分:0)

试试这个,(查看strtotime)手册

$now = time();
$current_month = date("Y-m-01 00:00:00", $now);
$start_month = strtotime("-1 month", $now);
$end_month = strtotime("-1 second", $now);

答案 2 :(得分:0)

尝试这样的事情:

echo date("Y-m-d", mktime(0,0,0,date('m')-1,1,date('y')));
echo date("Y-m-d", mktime(0,0,0,date('m'),0,date('y')));

答案 3 :(得分:0)

看起来有点过大,你(以及其他答案:X)尝试了什么。这只是

echo date('Y-m-d', strtotime('first day of last month'));
echo date('Y-m-d', strtotime('last day of last month'));

任意月份

// 3 months in the past
echo date('Y-m-d', strtotime('first day of -3 months'));
echo date('Y-m-d', strtotime('last day of -3 months'));

// 3 months in the future
echo date('Y-m-d', strtotime('first day of +3 months'));
echo date('Y-m-d', strtotime('last day of +3 months'));

了解更多At the manual

答案 4 :(得分:0)

echo $firstdate= "01/".date('m')."/".date('Y') ;
 $lastdateofmonth=date('t',date('m'));
 echo $lastdate=$lastdateofmonth."/".date('m')."/".date('Y') ;

$date='2012-06-05 12:00:00';

echo "End = ".date("Y-m-t",strtotime($date)); 
echo "start = ".date("Y-m-01",strtotime($date));