gpt4 book ai didi

php strtotime +2.5 小时错误?

转载 作者:行者123 更新时间:2023-12-02 04:32:08 27 4
gpt4 key购买 nike

strtotime 出现一些意外行为:

$d = '2.5';                                   // i.e. hours
$t = '2014-03-20 08:30:00'; // mysql datetime
$ut = strtotime($t); // value: 1395297000
$s = $d * 60 * 60; // duration in seconds: 9000
$plusHrs = strtotime($t.' +'.$d.' hours'); // value: 1395315000
$plusSec = strtotime($t.' +'.$s.' seconds'); // value: 1395306000

预期的行为是 $plusHrs = $plusSec。无论输入什么日期都会发生这种情况,这意味着这不是夏令时问题。

这是一个错误吗? (PHP v5.3.14)

最佳答案

不,这不是错误。 strtotime()期望 relative 中的整数值格式。因此,您的 +2.5 小时将被视为“+2 GMT” 然后 “+5” 小时并且点将被忽略。您可以将其更改为逗号,甚至也可以删除 - 结果不会改变,因为同样只解析整数。因此,此类声明将被视为相对于 GMT 偏移量的相对时间添加:

//this is the same things:
//and they mean set timesone to GMT+2 & add 5 hours:
date('Y-m-d H:i:s', strtotime('now +2.5 hours'));
date('Y-m-d H:i:s', strtotime('now +2,5 hours'));
date('Y-m-d H:i:s', strtotime('now +2 5 hours'));

例如,+1.5 小时为 GMT +1 时间添加 5 小时。这意味着,最终结果将取决于当前时区,因为初始时间戳将设置为当前时区(上面示例中的现在)。

关于php strtotime +2.5 小时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22804223/

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