位置: 编程技术 - 正文

关于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)

  • 资源税和增值税销售额不一致
  • 企业成立多久能注销
  • 公司食堂菜金会计分录
  • 固定资产清理残料变价收入
  • 商誉要摊销和减值吗?
  • 长期应收款在资产负债表中填在哪里
  • 计提工资和实际发放工资必须一致吗
  • 出租的城镇土地由谁交城镇土地使用税
  • 通过认证的增值税怎么算
  • 房地产开发企业预缴增值税
  • 管理费抵扣如何计算
  • 暂估出库是什么意思
  • 商业汇票概念股票
  • 发票反写是什么时候
  • 未按规定订立无固定期限劳动合同
  • 报销款冲抵其他应收款怎么做账?
  • 个人独资企业租车缴纳税金
  • 生活中都交了哪些朋友
  • 没有购销合同怎么申报印花税
  • 增值税留抵退税政策解读
  • windows10如何关闭病毒和威胁防护设置
  • 固定资产计提折旧的方法
  • 固定资产折旧的会计凭证
  • 资产负债表短期负债包括哪些
  • smss.exe是干嘛的
  • 雨林木风 u盘
  • linux系统情况
  • 电脑中毒之后怎么办
  • 是否亏损看什么
  • 资产购置融资
  • 固定资产全额折旧
  • 固定资产如何做账务处理
  • 贷款减值准备什么科目
  • php如何实现分页功能
  • 应付账款重分类含不含暂估
  • yolo v1 pytorch源代码
  • php取mysql查询单条数据
  • 小程序navigator组件
  • 卷卷卷卷卷
  • vue中的$el
  • 面试宝典下载
  • 汇编语言a命令怎么用
  • php简单检测网址是什么
  • 保理属于什么行业分类
  • 计提预付账款会计分录
  • 固定资产有金额界定吗
  • 现代服务业加计抵减最新政策2022
  • 如何根据营业执照核定税种
  • 在建工程科目的内容
  • 在其他地区设立分公司需要
  • 小规模纳税人无票收入申报表怎么填
  • 房地产企业成本包括哪些
  • 消费税是在哪个环节缴纳
  • 备用金预期有什么影响
  • 事业单位装修费账务处理
  • 律师事务所如何成立
  • Ubuntu下mysql与mysql workbench安装教程
  • windows7升级到windows8.1
  • XP系统连接VPN提示错误633:调制解调器已在使用的解决方法图文教程
  • 启动mac问号文件夹闪烁怎么办
  • u深度u盘启动盘制作工具无法进入电脑
  • win8.1流畅吗
  • 为大家详细介绍英语
  • win8系统没有自带的游戏吗
  • win7无法保存对权限所作的更改
  • w8虚拟内存怎么设置
  • 随机色彩
  • 序列化和反序列化是什么意思
  • linux shell 中 2>&1的含义
  • 简易的python代码
  • 用vue做项目加入购物车是怎么做到的
  • jquery控制滚动条位置
  • shell脚本传参数给命令
  • jQuery版AJAX简易封装代码
  • 生成ssh
  • JavaScript中Math.SQRT2属性的使用详解
  • 税务系统跨区调动
  • 出口退税期限最长几个月以上
  • 浙江省医保改革方案2022
  • 天津静海离天津市区多远
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设