PHP中的Date函数总是把Date往后一天

Date function in PHP gives always date one day behind

本文关键字:Date 一天 中的 函数 PHP      更新时间:2023-09-26

我的情况是总是把日期晚一天。例如,我有这个值-243219600,它相对于日期18/04/1962

date('d/m/Y', -243219600);

输出为:

17/04/1962

-243219600 seconds from January 1 1970 00:00:00 UTC in javascript is在这里你得到正确的日期。

date()的输出以配置的时区为准。如果您添加时间和时区,您可以看到它。在我的例子中是CET:

echo date('d/m/Y H:m:i T', -243219600);
//prints: 18/04/1962 00:04:00 CET

date()

溶液

如果你想让date()使用UTC,使用date_default_timezone_set:

date_default_timezone_set('UTC');
echo date('d/m/Y H:m:i T', -243219600);"

输出
 17/04/1962 23:04:00 UTC

(你看,因为它是UTC午夜前一小时,日期取决于时区)

DateTime:

如果DateTime类是由Unix时间戳构造的,那么它总是使用UTC:

来自文档:

注意:

$time参数是UNIX时间戳(例如@946684800)或指定时区(例如2010-01-28T15:00:00+02:00)时,$timezone参数和当前时区将被忽略。

所以你也可以使用下面的代码:
echo (new DateTime('@-243219600'))->format('d/m/Y');

检查PHP的时区,设置它与您的计算机相同(因为您使用javascript)