PHP datetime 月末减去一个月

PHP datetime end of month minus one month

对于给定的日期时间,我需要上个月的月底。

例如:

$date_given = '2019-07-14 16:33:05';

应该变成:

2019-06-30 23:23:59

我有一些可能的解决方案,可以将其分为几行。但是我的 program/script 的要求是在一行中。所以像这样:

$date_result = ...somefunction..(($date_given) -1 month) ...;

将所有内容都放在一行中并且没有前面的函数行真的很有帮助。

谢谢。

我实际上不知道是否有办法动态获取一天的最后一个 hour/minute/second,但我想我们可以放心地假设它始终是“23:59:59”,所以您可以这样做:

$lastDateOfMonth = date("Y-m-t 23:23:59", strtotime($date_given . '- 1 month'));

这里有很多解决方案,但如果必须是一行,我会选择这个

echo date_create($date_given.' last day of last month')->format('Y-m-d 23:59:59');