Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取上月结果更改的第一天_Php_Date - Fatal编程技术网

Php 获取上月结果更改的第一天

Php 获取上月结果更改的第一天,php,date,Php,Date,尝试获取上个月的第一天和最后一天: $monthStart = new DateTime("first day of last month"); $monthEnd = new DateTime("last day of last month"); $sMonth = $monthStart->format('U'); $eMonth = $monthEnd->format('U'); echo $sMonth . "," . $eMonth; 结果: 148596

尝试获取上个月的第一天和最后一天:

 $monthStart = new DateTime("first day of last month");
 $monthEnd = new DateTime("last day of last month");

 $sMonth = $monthStart->format('U');
 $eMonth = $monthEnd->format('U');

 echo $sMonth . "," . $eMonth;
结果:

 1485968094,1488300894
2秒钟后再做同样的事情:

 1485968096,1488300896
 1485968151,1488300951 
56秒后再做同样的事情:

 1485968096,1488300896
 1485968151,1488300951 
为什么这些价值观会改变?我希望每次都能做到以下几点:

 1485907200,1488240000 (for feb 2017)

您需要明确设置时间:

$monthStart = (new DateTime("first day of last month"))->setTime(0,0,0);
$monthEnd = (new DateTime("last day of last month"))->setTime(23,59,59);

默认情况下,它返回当前时间。

这是因为您没有指定时间组合,只指定了日期

您可以使用以下代码段解决此问题:

$monthStart = new DateTime("midnight first day of last month");
$monthEnd = new DateTime("midnight last day of last month");

$sMonth = $monthStart->format('U');
$eMonth = $monthEnd->format('U');

echo $sMonth . "," . $eMonth;
当没有时间规范时,它默认为当前时间