我的情况是日期总是晚一天。
例如我有这个值-243219600
这是相对于日期的1962年4月18日
After a
date('d/m/Y', -243219600);
输出是:
17/04/1962
-243219600自 1970 年 1 月 1 日 00:00:00 UTC 起的秒数javascript is
here http://www.esqsoft.com/javascript_examples/date-to-epoch.htm你得到正确的日期。
的输出date()
取决于配置的时区。如果您添加时间和时区,您就可以看到它。就我而言,它是 CET:
echo date('d/m/Y H:m:i T', -243219600);
//prints: 18/04/1962 00:04:00 CET
解决方案与date()
如果你想date()
to use UTC
, use date_default_timezone_set http://php.net/manual/en/function.date-default-timezone-set.php:
date_default_timezone_set('UTC');
echo date('d/m/Y H:m:i T', -243219600);"
Output
17/04/1962 23:04:00 UTC
(你看,由于现在是 UTC 午夜前一小时,因此日期取决于时区)
解决方案与DateTime
:
The DateTime
如果类是由 Unix 时间戳构造的,则它始终使用 UTC:
来自文档 http://en.php.net/datetime.construct:
Note:
The $timezone
当参数和当前时区被忽略时$time
参数要么是 UNIX 时间戳(例如@946684800)或指定时区(例如2010-01-28T15:00:00+02:00).
所以你也可以使用下面的代码:
echo (new DateTime('@-243219600'))->format('d/m/Y');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)