位置: 编程技术 - 正文

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

  • 税盘服务费抵扣增值税
  • 总账会计和全盘会计的区别
  • 增值税核算应设置什么
  • 汽车销售分期付款的账务处理
  • 受托加工开票如何选名称
  • 建筑业跨区域预缴增值税
  • 物业管理费专票可以抵扣吗
  • 给中间人回扣犯罪吗
  • 已申报个税减免什么意思
  • 办理契税需要的户口本复印件可以吗
  • 成本模式的投资性房地产折旧计入什么
  • 进口设备的重置成本包括( )
  • 汇票的票据行为有贴现吗
  • 股权转让需要缴纳企业所得税吗
  • 本年利润,利润分配
  • 法院拍卖房法院有什么义务和责任
  • 公司注销固定资产清理需要开票吗
  • 企业自建房转让如何交土地增值税
  • 公司购入房产账务处理
  • 公司房产税如何计算器
  • 防伪税控技术维护费是进项还是销项
  • 宣传费开票属于什么费用
  • 房租的应收必须交吗
  • 公司研发产品
  • 残保金中的工资总额在哪看
  • 债券溢价发行会计分录举例
  • php面包屑导航
  • 土地投资入股是否缴纳土地增值税12366
  • google谷歌浏览器下载电脑版
  • 免税和免征增值税是一个意思么
  • php中imagestring
  • mybitas分页
  • 如何快速使用验证码
  • 主动学习(Active Learning,AL)的理解以及代码流程讲解
  • thinkphp教程
  • java是什么意思
  • 职工福利费开支超过准予扣除标准的金额为1.2
  • python,array
  • 提前开具发票怎么做账
  • 绩效奖个人所得税是多少
  • 债权投资利息收入调增还是调减
  • 防暑降温用品进口品牌
  • 季度利润表是累计数吗
  • 一次性计入当期成本费用是什么意思
  • 自产产品对外捐赠要确认收入吗
  • 合伙企业税务处理办法
  • 银行利息支出税率是多少
  • 员工高工资
  • 第三方代销什么意思
  • 复利现值和复利终值互为逆运算对吗
  • 应付账款扣款分录
  • 期初固定资产算收入吗
  • 公司向个人借款分录
  • 资产处置费用是资产类科目吗
  • 企业外币折算的方法包括
  • 小规模纳税人购入货物收到增值税专用发票
  • 企业给职工提供的免费住房是不是合法住宅?
  • 主营业务毛利率和毛利率
  • 需要安装的固定资产有哪些
  • mysql5.0安装
  • sql简单教程
  • windows server 2008 R2
  • ubuntu安装超详细教程
  • 如何使用easyscan
  • mac搜索app
  • windows远程登录命令
  • centos7.6和7.7
  • windows102021年更新
  • win7一进电脑是花屏
  • win10电源选项
  • 好好了解 英文
  • 微信小程序tabbar颜色
  • python set集合取值
  • jquery中validate
  • unity手柄圆盘
  • 深入探讨换个说法怎么说
  • javascript学习指南
  • python线程启动和暂停
  • jq cookie
  • jquery on()
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设