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对象时没有问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |