echo strtotime("now America/New_York")."\n"; 1376459035 // -> 2013-08-14 05:43:55 - Wrong php -6ren">
gpt4 book ai didi

php - strtotime() 为字符串 "now"返回不同时区的不同 Unix 时间戳

转载 作者:行者123 更新时间:2023-12-05 08:00:31 25 4
gpt4 key购买 nike

php > echo strtotime("now America/New_York")."\n";
1376459035 // -> 2013-08-14 05:43:55 - Wrong

php > echo strtotime("now UTC")."\n";
1376444635 // -> 2013-08-14 01:43:55 - OK

php > echo time()."\n";
1376444635 // -> 2013-08-14 01:43:55 - OK

谁能解释一下?

这是 PHP 的发明——时区——“更正”的 unix 时间戳吗?

//编辑:

我意识到用“现在”指定时区是没有意义的。然而,它确实适用于其他相对时间,例如“明天午夜”。在那里,根据时区,“明天”可能会更远一天,具体取决于时区是否已经超过午夜。这种行为同样很奇怪,只是有点难以解释。

最佳答案

Unix time wiki 中所述, Unix Epoch 始终采用 UTC。这就是为什么输出来自

echo strtotime("now UTC");
echo time();

是一样的。根据this info纽约时区是 UTC -5 小时。当前夏令时 +1 现在同样 UTC -4 小时。这就是为什么您得到结果 2013-08-14 05:43:55(相差 4 小时)。

关于php - strtotime() 为字符串 "now"返回不同时区的不同 Unix 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18223806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com