检索给定日期的上个月的第一天

时间:2016-09-29 15:13:16

标签: php date datetime timestamp

给定Promise之类的字符串,我希望获得上个月的第一天(e.x 2016-05-25)。

我试过这个

2016-04-01

但我在上个月的第一天与当月相关,这不是我想要的。

具体来说,我将从客户那里得到随机日期(格式为' Ym-d')并且我必须显示前一个月的第一天与客户要求的月份相关。

5 个答案:

答案 0 :(得分:1)

这里是如何在任何月份而不是当月执行此操作

$date = new DateTime('2016-05-25');
$date->modify('-1 month');
echo $date->format('Y-m-t'); // 2016-04-30
echo $date->format('Y-m-01'); // 2016-04-01

答案 1 :(得分:1)

  

预先请求:系统应该是UTC

$firstDayLastMonth = date('Y-m-d', strtotime('first day of last month'));
$lastDayLastMonth = date('Y-m-d', strtotime('last day of last month'));
echo $firstDayLastMonth .'<br>'. $lastDayLastMonth ;

答案 2 :(得分:0)

$date = "2016-05-25"; 
$first_date = date("Y-m-1",strtotime($date));
$first_date_of_last_month = date("Y-m-1", strtotime($first_date . " -1 day")); 

答案 3 :(得分:0)

这适用于任何月份:

$datestart = date('Y-m-01',mktime(0, 0, 0, date("m")-1, 1, date("Y")));
$dateend   = date('Y-m-t' ,mktime(0, 0, 0, date("m")-1, 1, date("Y")));

答案 4 :(得分:-1)

我使用的解决方案是这样的:

$date = new DateTime('2016-12-31');
$date->modify('FIRST DAY OF -1 MONTH');
echo $date->format('Y-m-d'); //2016-11-01