位置: 编程技术 - 正文

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

  • 二手车过户需要带什么资料
  • 半成品可以计入成本吗
  • 个体户一个月能领多少发票
  • 运输费增值税专用发票几个点
  • 房地产企业预售阶段企业所得税
  • 如何计算应交税
  • 有限合伙企业合伙人分红纳税
  • 为在建工程发生的管理费用
  • 自来水公司代收污水处理费账务处理
  • 小规模纳税人要做账吗
  • 生产企业电费要不要计提?
  • 税务清算审计需要多久
  • 体检发票开公司还是个人
  • 哪些情况下小型车不能走
  • 个人购买房屋的税
  • 资产原值包含残值吗
  • 政府收取的工程物资
  • 购买材料,材料未验收入库,货款未付会计分录
  • 记账凭证的分类和基本内容
  • 土地平整费计入什么科目
  • 自产自用设备税务处理
  • 笔记本怎么清理D盘
  • 以前年度损益调整属于哪类科目
  • win10怎么推送win11
  • regsvc32.exe - regsvc32是什么进程 有什么用
  • macOS Big Sur 11.2 开发者预览版 Beta如何更新?
  • 高温补贴计入
  • 代扣代缴个人所得税手续费返还 增值税
  • 哈勃太空望远镜取得的部分成果有哪些
  • zendstudio怎么创建php项目
  • 美国布莱斯大峡谷成因
  • 若依项目制作饼状图和柱状图
  • 发放工资时扣除的保险怎么做
  • uniapp支付宝支付开发
  • 帝国cms为什么安装不了
  • 贷款和应收款项属于金融资产的哪类
  • 长期股权投资印花税计入什么科目
  • 固定资产科目的备抵科目
  • 收据能抵成本吗
  • 委托加工应税消费品
  • 二季度盈利三季度亏损
  • 认缴制和实缴制的区别公司破产
  • 企业每月应交哪几种税费
  • sql server提示不允许保存更改
  • SQL一条语句统计记录总数及各状态数
  • 加班餐费和误餐费的区别
  • 以前年度差旅费退回
  • 如何确定交易性金融资金
  • 品种法分批法分步法的区别
  • 减免税需要纳税申报吗
  • 利润总额包括什么项目
  • 租赁公司异地经营
  • 增值税免抵退税和免退税的区别有什么?
  • 什么叫特定资产和负债
  • 按预测范围不同划分为以下几类
  • 个体工商户和小规模纳税人的区别
  • 电信电子发票什么格式
  • 注册资金凭证怎么做
  • 商会开年会费用怎么入账
  • 租赁办公楼
  • 建账的过程包括哪些内容
  • ubuntu 连不上网如何排查原因
  • mac声音无法调节
  • windrv.exe
  • 手动防止Ping攻击方法(无需防火墙)
  • win10显示win8
  • 使用xshell连接虚拟机需要修改哪些配置
  • windows7修改注册表
  • zmweb.exe是什么进程
  • windows8安装步骤
  • 微软宣布
  • code::blocks怎么用
  • python2.7多进程
  • 详解金球奖之争
  • javascript如何禁用
  • 增值税0申报操作流程
  • 印花税应税凭证数量是什么意思
  • 珠海市高新区国土局局长
  • 纳税明细怎么查询系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设