位置: 编程技术 - 正文

关于PHP转换超过2038年日期出错的问题解决(php类型转换的两种方法)

编辑:rootadmin

推荐整理分享关于PHP转换超过2038年日期出错的问题解决(php类型转换的两种方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php类型转换的两种方法,php怎么转换,php怎么转换,php 类型转换,php转换数据类型,php 转go,php转换数据类型,php怎么转换,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

最近在写一个项目接口。测试中发现服务器上测试正常的功能,在本地一直有问题。一步步的排查,最终锁定问题是由于函数strtotime返回了一个false值,导致数据插入数据库失败。

相同代码运行结果不一样,原因那就是环境不一致导致。要么是PHP版本不同,要么是位数不同。

我电脑是位的。这里是PHP位数不一致,服务器使用位,而我本地是位。而strtotime被传入了一个字符串-1-1 ::,该参数大于了-1- ::所以在位PHP下直接返回false,而位PHP不受影响。

Y2K漏洞

导致上述问题的根本原因就是Y2K漏洞,也被称为Unix Millennium Bug。

位系统或PHP

此漏洞将会影响到所有 位系统下用UNIX 时间戳整数来记录时间的 PHP,及其它编程语言。一个整型的变量所能保存的最大时间为 年月 日 ::。超过这个时间后,整型数值将会溢出。

位系统或PHP

位系统下可以保存的日期最远日期是现在宇宙年龄的倍——亿年。所以不会受到该漏洞影响。

关于PHP转换超过2038年日期出错的问题解决(php类型转换的两种方法)

如何检测

如何知道你的系统是否收到该漏洞的影响。很简单,直接使用strtotime去转换一个大于年1月日::日期。或者使用date函数将一个大于时间戳转换为日期。

下面具体演示一下

方法一

上面结果如果返回-- ::那么就没有问题。如果返回-- ::那么就受收到影响。

方法二

上面结果如果返回那么就正常。如果返回false那么也会受到影响。

解决方案

方案一

更换系统和PHP均为位。这个代价比较大,但是可以永久解决问题。

方案二

PHP5.2版本之后提供了一个函数DateTime可以临时解决一下问题。

通过DateTime类来操作日期不会受到Y2K漏洞的影响,可以最远支持到年月日

总结

标签: php类型转换的两种方法

本文链接地址:https://www.jiuchutong.com/biancheng/289195.html 转载请保留说明!

上一篇:PHP用continue跳过本次循环中剩余代码的注意点(php exit绕过)

下一篇:php实现微信模拟登陆、获取用户列表及群发消息功能示例(php wechat)

  • 物业公司增值税加计扣除
  • 增值税税额怎么算出来
  • 累计折旧科目一直有余额吗
  • 待报解预算收入计入什么科目
  • 个人开具劳务费增值税发票
  • 利息收入记借方负数表示增加还是减少
  • 建筑工程公司收入成本怎么结转
  • 企业为什么会有两个中征码
  • 建筑业异地施工如何纳税
  • 政府扶持资金要还吗如村委借给企业对吗
  • 企业季度预缴所得税怎么账务处理
  • 跨月应该如何开具红字发票?
  • 员工在社保局报备流程
  • 增值税发票含税不含税怎样调整
  • 怎么看公司行不行
  • 纳税人提供植物油的税率
  • 应税行为扣除额期初余额
  • 股息红利是否交个人所得税
  • 预缴企业所得税是含税还是不含税
  • 结余资金财政收回如何做账
  • 走pos对公账户扣多少手续费
  • 成本法核算长期股权投资初始投资成本
  • 库存现金的定义及特征
  • 未分配利润清算如何处理
  • linux |bc
  • 电脑在线测速的软件
  • 企业并购效益
  • 网速怎么限制10mb以内
  • 域名服务费属于什么会计科目
  • u启动pe装机工具如何重装系统win10
  • 酒店布草洗涤赔偿怎样折旧
  • 建筑行业挂靠开票怎么做账务处理?
  • nicconfigsvc.exe - nicconfigsvc是什么进程 有什么用
  • php的缓存文件是什么格式
  • 先开票还是先付款最新规定
  • 资本公积金为什么不能用于弥补亏损
  • nginx隐藏后缀
  • php单例模式应用场景
  • 投资性房地产转为存货
  • batset命令
  • thinkphp withjoin
  • 企业所得税按季还是按年
  • 深入浅出讲解傅里叶变换
  • vue3配置文件
  • javaweb项目开发流程
  • echarts图大小设置
  • js检查json是否合法
  • ntpd命令
  • 退货业务增值税税务处理
  • 个人怎么开专票
  • 产权转移数据印花税计税依据含不含增值税
  • 税务变更了股东工商没变更
  • 进项税额转出可以为负数吗
  • php安装不上
  • 出口企业为什么免税又退税
  • 企业为职工支付的补充医疗保险费
  • 待报解预算收入什么意思
  • 存货跌价准备什么科目
  • 公司向法人借款协议
  • 管理费用当月可以结转吗
  • 税控盘和金税盘一样吗
  • 哪些发票可以报账
  • mysql 生成guid
  • win10 rs5
  • Windows 2008 R2 AD组策略-统一域用户桌面背景详细图文教程
  • window10系统主题
  • windows8.
  • windows7录音怎么录
  • win7电脑711
  • linux修改用户名
  • win10闹钟软件
  • iwatch命名
  • unity优化方案
  • yarn使用教程
  • css中dl
  • cocos2dx游戏开发教程
  • 使用androidx 找不到v7
  • css框架结构
  • html概念及作用
  • 查看node
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设