给定Promise
之类的字符串,我希望获得上个月的第一天(e.x 2016-05-25
)。
我试过这个
2016-04-01
但我在上个月的第一天与当月相关,这不是我想要的。
具体来说,我将从客户那里得到随机日期(格式为' Ym-d')并且我必须显示前一个月的第一天与客户要求的月份相关。
答案 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