位置: 编程技术 - 正文

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

  • 调整增值税误差的方法
  • 医院要交什么费用
  • 城镇土地使用税纳税义务发生时间
  • 监理公司成本核算方法
  • 非税收入票据能否税前扣除
  • 对公账户的钱都是国有资产吗
  • 展会补贴收入会计处理
  • 应付账款赊销率和周转率的区别
  • 个人所得税算错
  • 预缴土地增值税的会计处理
  • 固定资产折旧购买日期还是使用日期呢
  • 小企业商品销售的入账价格
  • 支票存根联要带去银行吗
  • 三方协议怎么入账
  • 持有至到期投资核算内容
  • 印花税申报完成后如何缴款
  • 公司客车高速费如何抵扣进项税?
  • 固定资产评估是什么单位
  • 单位付款方式
  • 民办教育培训机构申请条件
  • 企业捐赠扣除
  • 财务会计怎么学好
  • 差额税和增值税怎么算
  • 企业购买二手车需要缴纳哪些税
  • 预提未收的租金怎么入账
  • 先征后退的增值税
  • 上月库存占比怎么算
  • ffmpeg安装教程linux
  • linuxssh免密登录
  • 交易性金融资产属于流动资产
  • 一般合同怎么写才有效
  • 购买办公用品怎样写备注
  • 微信小程序登录后端
  • php soap wsdl
  • 前端工程师在大学学什么专业
  • 增值税纳税申报表在哪里查询
  • python中有很多包管理工具
  • 企业会计日志
  • python字典操作 遍历
  • mongodb安装教程图解
  • centos编译运行c程序
  • 债权债务转让会计分录
  • 什么是外勤会计制度
  • 普通征税差额征税和减按征税
  • 管理费用冲减其他应付款分录
  • 本年利润期末需要结转吗
  • 长期借款计提的利息可能借记
  • 业务招待费税前列支
  • 企业正常经营的条件
  • 退回的保证金多了一点怎么做分录
  • 一季度存款
  • 库存商品坏账准备怎么算
  • 审计 调整分录
  • 实缴发票和月结发票知乎
  • 免抵退退税额
  • 房地产开发费用10%
  • 没有发票也可以报销
  • 亏损太多账务如何处理
  • 工业企业检查表
  • 删除sql server2019
  • centos怎么添加用户
  • mac如何重装系统win10
  • Win10 Mobile Build 10572 其它未记录更新内容汇总
  • spools.exe - spools是什么进程 有何作用
  • svcinit.exe - svcinit是什么进程
  • 在win7系统中如何用快捷键复制文件或文件夹
  • 剑网端游吃电脑配置
  • win1020h2正式版
  • linux rm 命令删除文件恢复
  • 电脑系统 win7
  • pycharm官方教程
  • 关于javascript
  • linux 部署
  • python嵌套列表生成
  • 广度优先搜索输出路径
  • python中读取文件
  • javascript怎么学
  • unity ui控件
  • 湖南省低保电话是多少?
  • 年终奖发4万扣多少税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设