【发布时间】:2021-12-20 06:19:51
【问题描述】:
使用此代码:
$epoch= '1609455600';
$date = new DateTime( '@'.$epoch);
echo $date-> format( 'Y-m-d');
我看到了这个结果2020-12-31。服务器时区报告为 Europe/Zurich(使用 date_default_timezone_get)。但在这个时区,该日期应该是 2021-1-1。
这是怎么回事?
【问题讨论】:
-
根据documentation:注意:当$datetime 参数是UNIX 时间戳(例如@946684800)或指定时区(例如2010- 01-28T15:00:00+02:00)。所以你可以尝试这样的事情:
echo $date->add(DateInterval::createFromDateString($date->getTimeZone()->getOffset($date) . ' seconds'))->format('Y-m-d'); -
谢谢@tuckbros。日期时间很奇怪