gpt4 book ai didi

php - 负 float 日期

转载 作者:搜寻专家 更新时间:2023-10-31 21:10:33 28 4
gpt4 key购买 nike

我在变量中有一个时间戳

$data = (float) -2208988800;

是否可以根据这些数据创建正确的日期?date("d.M.Y", $data) 返回“07.02.2036”

最佳答案

你得到结果 07.02.2036 因为你在 x86(32 位机器)上,整数范围从 -21474836482147483647(参见 echo PHP_INT_MAX;)。 PHP 在内部将 date() 函数的第二个参数转换为整数,因此在 32 位机器上,字符串或 float -2208988800 将变为整数 2085978496 ,这是日期 2036-02-07,demo .

echo date('Y-m-d', -2208988800);
# 2036-02-07 (x86)
# 1900-01-01 (x64)

run code on x86 machine

run code on x64 machine

如果您希望在 x86 和 x64 两台机器上都使用负时间戳,请使用 DateTime扩展名:

$dt = new DateTime('@-2208988800');
echo $dt->format('Y-m-d');

demo

请注意,对于 unix 纪元之前的日期,方法 getTimestamp() 将返回 false,其中方法 format('U')将返回正确的时间戳编号。

var_dump( $dt->format('U') );    # -2208988800
var_dump( $dt->getTimestamp() ); # false

demo

关于php - 负 float 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20775300/

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