位置: 编程技术 - 正文

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

  • 增值税纳税申报时间
  • 转让财产损失是指什么
  • 代理费住宿费都包括什么
  • 调拨单可以根据哪些单据生成
  • 本月进项税大于销项税有留底,如何做会计分录
  • 增值税加计扣除是什么意思啊
  • 罚没收入属于
  • 增值税发票可以抵扣多少
  • 员工借款报销流程
  • 审计人员的差旅费放在哪核算
  • 以公允价值计量且变动计入其他综合
  • 装卸搬运费是否含税
  • 农产品增值税免税政策
  • 2018劳务费个人所得税税率表
  • 旅游业开票问题总结二
  • 房地产公司成立时间
  • 工程储备的材料是存货吗
  • 购买活动赠品会计分录
  • 外卖收入增值税怎么算
  • 退回社保费的会议记录
  • 加油卡充值开票怎么开
  • 4500监控
  • xp系统可以安装cad吗
  • 其他业务收入怎么申报增值税
  • 计提固定资产折旧怎么做会计科目
  • 不能错过的只有你下架了吗
  • 房地产开发企业涉及哪些税
  • 增值税发票作废后还能查到吗
  • 生产储存剧毒化学品的单位应当设置
  • 暂估纳税调增了账务怎么处理
  • 准公益性企业
  • AttributeError: ‘bytes‘ object has no attribute ‘encode‘异常解决方案
  • 蒙特城堡干红葡萄酒价格
  • 动态模型图如何制作
  • mac完全安装windows
  • 挖机出租给公司
  • vit详解
  • yolov5实例分割原理详解
  • 基建账并账规定
  • 如何使用php给图片命名
  • 银行贷款入账需要什么
  • 应交税费年末有余额怎么处理
  • open com failed
  • 织梦的css样式在哪
  • 商誉在资产负债表中如何体现
  • 更正申报季度企业所得税
  • 车辆维修费如何赔偿
  • 生育津贴是否需要缴纳增值税
  • 建筑安装印花
  • 公司借款如何做账务处理
  • 初次购买税控盘480都能抵扣吗
  • 计提是好是坏
  • 财务费用和应付利息都在借方
  • 纳税申报财务报表怎么撤销
  • 股东退股如何清算
  • 会计凭证会计账簿与账务处理程序
  • mysql基本介绍
  • java数据类型举例
  • SQL Select语句完整的执行顺序
  • win8系统c盘占用多大
  • 预览版win10
  • win10屏幕亮度怎么调节快捷键
  • ubuntu作为开发环境
  • win7不同用户下装不同软件
  • linux codec
  • linux apt apt-get
  • windows 7中,执行应用程序的方法有哪几种?
  • 怎么把perl删除干净
  • node 进程
  • node.js介绍
  • listary 替代
  • jQuery继承extend用法详解
  • onSaveInstanceState和onRestoreInstanceState触发的时机
  • ruby format
  • js面向对象编程实例
  • jquery.load()方法,刷新网页
  • android studio中r文件在哪
  • 已经开具的专用发票
  • 会议服务的服务定位是什么
  • 大疆小白控和普通控哪个信号好
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设