位置: 编程技术 - 正文

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

  • 开红字发票需要收回原发票吗
  • 微信收款和支付宝收款有啥区别
  • 抵扣认证的发票怎么查询
  • 零申报失败什么原因
  • 住宿费电子普票可以抵扣进项税额
  • 跨月的增值税普通发票开错了怎么办
  • 折扣销售销售折扣销售折让有何区别
  • 行政事业单位核算短期投资时有关预算会计核算正确的是
  • 去银行提取备用金开支票怎么填
  • 土地款抵扣增值税申报
  • 公司将我转到另外一家公司
  • 土地受让人是什么意思
  • 企业缴印花税分录
  • 建筑企业对员工管理制度
  • 工会发放员工福利的通知
  • 农村合作社开的鸡蛋免税票可以抵进项税吗?
  • 小规模纳税人按什么标准纳税
  • 没有库存先开票再发货
  • 公账转私账可以撤销吗
  • 多交的增值税附加税怎么做账
  • 房地产商铺增值税税率是多少
  • 劳务市场零工临时工
  • 注册表修改系统安装日期
  • Secure Boot什么意思?BIOS中Secure Boot灰色无法更改解决方法详解
  • bios里硬盘是哪个
  • 公司装修费用如何入账
  • linux 判断语句
  • 企业年报系统怎么进
  • 企业长期借款的利息,有可能计入的科目有( )
  • php图片下载本地功能
  • 签了购房合同贷款办不下来怎么办
  • 贸易公司和生产厂家怎么合作能够双赢
  • vue错误处理
  • php单态模式简单解释
  • cookie与session的作用和原理
  • vue做项目的流程
  • wordpress neve
  • parted命令详解
  • 用python写
  • 收到多开发票的会计分录
  • 年报资金数额是什么意思
  • 税金及附加减半征收金额按哪个
  • 外籍个人是否可以买社保
  • 会计账簿登记错误
  • 应付账款长时间收不回怎么处理呢
  • 公司车辆购买保险申请
  • 小企业研发费用放在哪个科目
  • 债权投资的交易费用计入成本还是利息调整
  • 废料销售的会计处理
  • 银行进账单需要作为附件吗
  • 其他业务收入如何填写增值税申报表
  • 车船税没发票只交可以吗
  • 小企业如何建立党支部
  • 总账选项设置步骤
  • MySQL execute、executeUpdate、executeQuery三者的区别
  • 哪个是win8.1更新win10的补丁
  • 虚拟机怎么安装exe文件
  • ubuntu20.04 vim
  • browsercore.exe是什么
  • OS X Yosemite系统下载失败怎么办?OS X 10.10下载错误解决方法
  • win7安装软件后所有打开变成记事本
  • linux关闭sh
  • win7系统自动注销重启
  • 使用jquery操作dom
  • css实现放大缩小的动画效果
  • eclipse4.9.0安装windowbuilder
  • 批处理文件实例
  • 举例详解民法典第502条
  • jquery动态添加div
  • unity提高渲染画质
  • json转复杂对象
  • onclick和onfocus
  • 收藏一些不常用的图片
  • 安卓开发界面ui设计器
  • 税务局营改增文件
  • 运费没有发票怎么报销
  • 拆迁房抵税政策
  • 顺德中学校徽图片大全1998年
  • 车辆购置税完税证明怎么查询
  • 如何撤销工商注册登记
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设