我的日期代码如下:
$UTC = new DateTimeZone("UTC");
$newTZ = new DateTimeZone("America/New_York");
$date = new DateTime( "2011-01-01 15:00:00", $UTC );
$date->setTimezone( $newTZ );
echo $date->format('Y-m-d H:i:s');
我的问题是如何获得2011-01-01 15:00:00
的昨天时间。我目前正在使用此date('Ymd',strtotime("-1 days"))
,但我认为这不对。使用我的第一个代码获取昨天日期的最佳方法是什么?
答案 0 :(得分:3)
在互联网和stackoverflow上,这个问题有很多答案。所以,再一次:
在DateTime上使用:: modify()方法:http://php.net/manual/en/datetime.modify.php
$date->modify('-24 hours')
$date->modify('-1 day')
答案 1 :(得分:2)
使用它:
File::put()
答案 2 :(得分:1)
您可以使用\DateTime::modify()
功能: -
$date->modify('-1 day');
或者你可以减去DateInterval: -
$date->sub(new \DateInterval('P1D');
有关详细信息,请参阅DateTime manual。
如果您不想修改原始的$ date变量,那么您可以使用DateTimeImmutable代替: -
$date = new \DateTimeImmutable();
$yesterday = $date->sub(new \DateInterval('P1D');
答案 3 :(得分:1)
使用修改功能
<?php
$UTC = new DateTimeZone("UTC");
$newTZ = new DateTimeZone("America/New_York");
$date = new DateTime( "2011-01-01 15:00:00", $UTC );
$date->setTimezone( $newTZ );
echo $date->format('Y-m-d H:i:s');
$date->modify('-1 day');
echo "\n";
echo $date->format('Y-m-d H:i:s');
?>