位置: 编程技术 - 正文

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

  • 企业收取培训费
  • 缴纳附加税会计科目怎么做
  • 报废车残值款计入什么科目
  • 个人劳务费的免税政策
  • 房产税和城市房地产税
  • 在途物资的会计凭证怎么做
  • 经济合同
  • 坏账已核销
  • 宾馆收入应按什么计算
  • 营改增建筑业税率是多少
  • 金税三期的变化
  • 小规模纳税人普票可以开3%吗
  • 税控系统服务质量调查报告
  • 装修发票是什么发票
  • 网上认证增值税专用发票步骤图解
  • 发票章和税号不匹配
  • 金税四期什么时候正式上线
  • 地勘单位需要什么资质
  • 专用发票的清单要开2张吗
  • 进项发票已入账抵扣后开负数红冲怎么处理
  • 进口货物有进项税吗
  • 税务机关核定的计税价格是否含税
  • 购买工装的进项能抵扣吗
  • 原材料损失分录
  • 园林绿化工程公司有哪些
  • 电脑怎么一键返回到桌面
  • uefi系统安装win7gho
  • 在php中,字符串有哪些表示形式
  • 子公司接受母公司捐赠的会计处理
  • 外商投资企业注册登记
  • 存货分类账目录填写样本图片
  • 毛地黄长什么样
  • Prometheus告警规则配置
  • 发放职工薪酬账务怎么做
  • php常见错误
  • 一般纳税人公司出售旧车怎么开票
  • 退税发票在总局怎么开
  • win11右键没了
  • php时间代码
  • 小企业准则季度汇总
  • 所有者权益变动表怎么填 实例
  • 用python创建一个列表
  • 职工保险报账
  • 事业单位相关规定有哪些
  • 对公转账房租如何填写备注
  • 收到存款利息属于资金周转吗
  • 付给第三方的差额是什么
  • 将外购商品作为非货币
  • 强制执行的款在执行局领取吗
  • 为什么要把工资说的好高呢
  • 销售公司中的服务是什么
  • 什么是资金结存,它具体包括哪些内容
  • 员工报销停车费计入什么科目
  • 冲销销售收入分录
  • 超市会计如何核算成本
  • 销售边角废料取名怎么取
  • win10选择软件打开方式
  • window10预览在哪里找
  • linux chkdsk
  • win8系统的应用程序在哪里
  • Linux 后台执行程序如何操作?
  • win10 自带
  • 您的服务器不支持此服务
  • cocos2dx 教程
  • pg环境变量
  • java timer
  • shell 输出
  • linux保存
  • bootstrap 可编辑下拉检索
  • 安卓自定义ui
  • js中的函数怎么使用
  • python错误和异常处理
  • 安卓通用代码
  • 发票一年可以开多少
  • 留抵退税再提速
  • 公允价值变动损益属于什么科目
  • 构建税务系统纵向到底
  • 税务ukey版商品编码怎么添加
  • 购房税率是多少
  • 工伤保险怎么补申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设