加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

x64 PHP / MYSQL构建是否支持64位Windows Server上的完整64位时

发布时间:2020-12-13 22:29:16 所属栏目:PHP教程 来源:网络整理
导读:可能是一个愚蠢的问题,但我需要找到答案.我们正在编写的应用程序需要处理遥远的过去和未来日期,并且我认为将64位Unix时间戳处理为日期将是一个简单的解决方案,前提是我正确理解了 PHP manual,其中指出最大int值是平台相关且始终签名.因此,x64平台应该支持2 ^
可能是一个愚蠢的问题,但我需要找到答案.我们正在编写的应用程序需要处理遥远的过去和未来日期,并且我认为将64位Unix时间戳处理为日期将是一个简单的解决方案,前提是我正确理解了 PHP manual,其中指出最大int值是平台相关且始终签名.因此,x64平台应该支持2 ^ 63个咬合,而x86平台应该支持2 ^ 31个最大咬合.

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

例如:

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

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

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

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

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

– 我希望我不会太暧昧.提前致谢.我们只是一群科学极客而不是真正的程序员,并且正在努力解决这个“琐碎”的问题.

解决方法

有趣的问题:我尝试了一段时间后运行一些测试,期待一个完整的64位时间戳给出了大爆炸和太阳燃烧之间的日期范围,但发现它仍然只是处理时的低32位传递给date()函数,即使回显时间戳整数值显示完整的64位范围.

编辑

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读