gpt4 book ai didi

php - x64 PHP/MYSQL 构建是否支持 64 位 Windows 服务器上的完整 64 位时间戳

转载 作者:可可西里 更新时间:2023-11-01 07:42:51 26 4
gpt4 key购买 nike

可能是个愚蠢的问题,但我需要找到答案。我们正在编写的应用程序需要处理遥远的过去和 future 日期,我认为将我们的日期处理为 64 位 Unix 时间戳将是一个简单的解决方案,前提是我理解 PHP manual正确,这表明最大的 int 值是平台相关的并且总是有符号的。因此,x64 平台应支持 2^63 字节,而 x86 平台应支持最大 2^31 字节。

基本上,该应用程序仅处理整数时间戳,以使我们相当复杂的算法稍微“简单”一些。但是,尝试处理遥远的过去或 future 的时间戳值会导致我们当前 x86 构建的 PHP 中任何大于 +/- 2^31 的值的预期溢出。我的解决方案是使用免费的 visual c++ studio 下载来简单地编译 x64 PHP 构建,但在我深入研究之前,我想知道我的假设是否正确 - “Windows x64 PHP 构建将正确处理 64 位 int值,并正确地将 Windows ‘ticks’ 转换为 64 位 Unix 时间戳,以用于其 native 日期/时间函数,就像它为 x86 构建所做的那样。”

例如:

echo mktime(0, 0, 0, 12, 31, 2055);

将返回正确的时间戳,而不是 false

同样的事情适用于 MYSQL 时间戳。例如:

SELECT UNIX_TIMESTAMP('2065-11-30 10:30:19');

将返回正确的值,而不是像我们正在运行的当前 x86 构建那样返回 '0'

-我希望我不会太模棱两可。提前致谢。我们只是一群科学极客,而不是真正的程序员,正在为这个“微不足道的”问题而苦苦挣扎。

最佳答案

有趣的问题:我前段时间尝试运行一些测试,期望完整的 64 位时间戳能给我大爆炸和太阳熄灭之间的日期范围,但发现它仍然只有较低的 32 位是在传递给 date() 函数时被处理,即使回显时间戳整数值显示完整的 64 位范围。

编辑

但是,使用 64 位值范围设置 dateTime 对象没有问题。

关于php - x64 PHP/MYSQL 构建是否支持 64 位 Windows 服务器上的完整 64 位时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4107248/

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