位置: 编程技术 - 正文

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

  • 电子税务局能查到个税申报信息吗
  • 销售分哪几类
  • 辞退补偿款怎么算
  • 辞退员工赔偿计算公式
  • 营业执照办出后多久生效
  • 航空运单能当发票使用吗
  • 个人承包经营所得是什么意思
  • 建安企业会计分录实操
  • 税控专用设备抵扣分录
  • 营改增广告标牌制作的税务怎么处理
  • 增值税专用发票和普通发票的区别
  • 广告费用的增值税税率
  • 企业所得税权责发生
  • 公司注销时资本要交税吗
  • 生活支出计入什么科目
  • 公司支付广告费怎么入账
  • 付敏科技有限公司官网
  • 工会经费申报网址是什么
  • 每月结转本年利润会计分录
  • 报销差旅费如何报税
  • 危废处置怎么收费
  • 强制关闭mac系统的快捷键
  • u盘win10系统安装教程
  • 递延性负债
  • windows dvd maker是什么
  • 温尼伯湖成因
  • 购买房地产和买房一样吗
  • php常见设计模式和用途
  • 乐观锁用法
  • php判断密码长度
  • php无限级分类
  • vue使用什么语言
  • java面试题及答案下载
  • thinkphp环境搭建教程
  • 外管证异地预缴税款是什么意思
  • 预付账款后收到货物会计分录
  • sqlcode错误码100
  • 工会经费申报的计税比率是
  • 利息收入怎么入账
  • 分公司能不能作为行政处罚的主体
  • 跨年收入退款如何处理
  • 个人所得税年度累计扣税规则
  • 社会保险差额缴纳
  • 简易征收的进项税额转出
  • 办公室购花卉会计处理
  • 小规模发票跨月冲红怎么纳税申报
  • 普通发票可以改日期吗怎么改
  • 代理进口货物如何确定增值税纳税人
  • 请问母公司如何称呼
  • 复利终值和年金终值的公式
  • 印花税自查补缴情况说明补以前年度
  • 出售房产收入属于转让财产收入吗
  • 浅谈基于comsol的锂离子电池仿真
  • mysql索引方式有哪些
  • u盘界面可以设置背景吗
  • linux增加命令
  • mac os常用快捷键
  • 苹果mac怎么下载
  • win8怎么关闭系统自动更新
  • neoCapture.exe - neoCapture是什么进程 有什么用
  • 微软开始推送win10
  • 电脑双系统删除一个系统的步骤
  • BootStrap TreeView使用实例详解
  • jquery实现搜索功能
  • dos 浏览器
  • Android Bound Service(二) ----- Using AIDL
  • Linux修改tomcat默认端口号8080
  • java一些常用词汇
  • c#属性窗口
  • u3d地形编辑贴图
  • 如何用jquery
  • python文件文件夹操作
  • 莱鸟人集团
  • javascript构造函数可继承父类的构造函数
  • 延时加载js文件
  • Android GridView属性集合
  • 河北省国家税务局长简介
  • 有关节能环保的英语作文
  • 重庆国家税务局官方网站
  • 中山税务如何预约
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设