使用DateTime获取上个月的第一天00:00:00?

时间:2013-12-26 08:34:41

标签: php datetime

我如何获得上个月的第一天的开始时间?我目前正在使用这个:

$date = new DateTime('first day of last month');

它给了我上个月的第一天,但​​就我现在的时间而言。 我实际上要做的就是从时区开始。例如:

$date = new DateTime('first day of previous month', 
new DateTimeZone('UTC'));

结果将于2013年7月1日00:00:00。或者,如果我使用:

$date = new DateTime('first day of previous month', 
new DateTimeZone('Europe/Amsterdam'));

预期结果:2013年6月30日21:00:00(由于其抵消)。

如何使用PHP执行此操作?

1 个答案:

答案 0 :(得分:8)

只需添加时间(time formats

$date = new DateTime('first day of previous month 00:00:00', new DateTimeZone('UTC'));
var_dump($date->format('Y-m-d H:i:s')); // string(19) "2013-11-01 00:00:00"

$date = new DateTime('first day of previous month 00:00:00', new DateTimeZone('Europe/Amsterdam'));
var_dump($date->format('Y-m-d H:i:s')); // string(19) "2013-11-01 00:00:00"

或者添加午夜(Relative Formats

$date = new DateTime('midnight first day of previous month', new DateTimeZone('Europe/Amsterdam'));
var_dump($date->format('Y-m-d H:i:s'));

$date = new DateTime('midnight first day of previous month', new DateTimeZone('UTC'));
var_dump($date->format('Y-m-d H:i:s'));

Demo

相关问题