php date()函数不支持处理大于2147483648的数字?「建议收藏」

php date()函数不支持处理大于2147483648的数字?

大家好,又见面了,我是全栈君。

PHP代码:

<?php

echo 2147483648 + 100;

echo '<br>';

echo date('Y-m-d', 2147483648);

?>

运行后显示结果,可以看出第一样运算正确支持处理2147483648 + 100,但第二行就显示1901年了:

php date()函数不支持处理大于2147483648的数字?「建议收藏」

首先php是64位的,windows也是2012 64位, apache也是64位的:

php date()函数不支持处理大于2147483648的数字?「建议收藏」

为什么会出现这么严重的问题啊, floatval()肯定不行, 因为用它处理后还有小数点也被存入数据库了, 然后还会出现严重的判断逻辑灾难啊,

比如 if(floatval($_GET[id]) === 123) 就算id=123它也认为不成立返回假, 为什么程序代码处理整数不能严格按照数学界的标准来, 只要是纯数字的都是整数啊???
测试出来不是php版本是否升级的问题, 而是TMD所有Windows的php都有该BUG, 即使你的php和windows全是64位也不行,
很多函数不支持处理大于21亿的数

开始没注意到是 php 5.6.23
你可以看一下 php 的发版说明:只有 php 7 才真正解决了 64位数运算的问题(不分 x86、x64)
所以你应该一步升级 php7 到位,而不是在低版本上纠结历史问题

PHP7下,没问题,正常输出

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/111448.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JAVA四舍五入保留一位小数

    JAVA四舍五入保留一位小数newBigDecimal(speed).setScale(1,BigDecimal.ROUND_HALF_UP).doubleValue()

  • 函数类型_C语言函数类型

    函数类型_C语言函数类型函数类型在ECMAScript中有三种函数类型:函数声明,函数表达式和函数构造器创建的函数。每一种都有自己的特点。1.函数声明这种函数类型的主要特点在于它们仅仅影响变量对象。该特点也解释了第二

  • 基于java的毕业设计参考文献_java毕业论文参考文献

    基于java的毕业设计参考文献_java毕业论文参考文献一年一度的毕业季,最令毕业生头疼的就是毕业设计以及撰写毕业论文,而毕业论文还需要加上多篇参考文献,有的老师对参考文献的要求是很多的,比如需要国内的和国外的,时间必须是近三年的,满足XXX要求的文献至少

  • goland 2021.9.1激活码_最新在线免费激活

    (goland 2021.9.1激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • sql清空表数据命令

    sql清空表数据命令有三种清空方式:1.delete逐行删除表数据速度比较慢,不适合删除数据量大的表。2.truncate删除表中所有数据并且保留表结构,但是不能撤消还原。3.drop表数据和表结构一起删除,在实践过程中删除大数据量表数据。使用1,2这两种方法需要等待好久才能清空完成。有一个较快的方法是先导出表结构,首先对原先表进行删除,然后再重建。…

  • 「从零单排canal 03」 canal源码分析大纲

    「从零单排canal 03」 canal源码分析大纲

    2020年11月19日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号