位置: 编程技术 - 正文

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

  • 企业收取培训费
  • 小规模减免税款的账务处理
  • 投资性房地产出售的会计处理
  • 资产负债表中的固定资产是原值还是净值
  • 购买电脑的折旧怎么计算
  • 住宿发票税点为什么有6%和3%的区别
  • 当月开票当月付款分录
  • 累计折旧的计提分录怎么写
  • 红字发票冲销的销项税怎么处理
  • 没有及时报关怎么办
  • 参加会议需要用身份证吗
  • 工资不到3500用交个税吗
  • 个人所得税生育险
  • 企业所得税核定征收怎么计算
  • 企业每月纳税申报流程
  • 成本费用率偏低
  • 计提个人负担的社会保险费分录
  • 收到单位失业保险怎么办
  • 租个人房屋办公怎么租
  • 金税盘发行后什么时候可以用
  • 上年销项税额录错了,怎么调整
  • 跨年冲暂估如何做账?
  • 个体工商户投资金额填多少
  • 公司处理固定资产车辆怎么开发票
  • 腾讯电脑管家怎么修复dll
  • 开红字专用发票记账时摘要怎样写?
  • PHP:oci_statement_type()的用法_Oracle函数
  • 在windows7中,桌面图标的排列顺序是
  • win7旗舰版系统怎么样
  • 发票开了对方未付款
  • 采购周转材料会议记录
  • win7纯净版系统官网
  • 补缴税款怎么补
  • 取得专票怎么结转销售成本
  • 辞退员工补偿标准是n+1还是2n
  • 计提职工养老保险金
  • 一次性劳务报酬所得如何扣税
  • vue 使用js
  • 物流费属于什么税收编码
  • 个体户可以不办公户吗
  • layui框架模板
  • 暂估收入如何做账
  • 库存现金科目的辅助核算项目为日记账
  • 纳税调增调减通俗易懂
  • 一件代发退货如何处理
  • 纳税申报系统里怎么填写
  • python里eval的用法
  • mysql 5.7特性
  • 公司收到保险公司赔款后又转给个人怎么处理
  • 公司有残疾人如何申报残保金
  • 资本化费用为什么会减少
  • 蔬菜批发成本怎么核算
  • 存货跌价准备确认损失分录
  • 受托代销的含义
  • 消防设施安装费收费标准
  • 社保补贴生育津贴
  • 为什么持有库存
  • 待抵扣进项税额是什么情况下用的
  • 记账凭证是什么填制的?A.由经办人
  • sql server常规错误
  • win2003控制面板在哪里打开
  • vmware8.0.4
  • gnuradio编写模块
  • windows defender 图标怎么从任务栏删除
  • xp 桌面图标
  • linux ping命令的用法
  • javascript之Array 数组对象详解
  • android studio 新建项目只有.idea文件
  • 表示网页行为的是
  • CSSvista可同时在IE和Fifrefox调试的CSS编辑提供下载
  • python 压缩gz
  • python gensim
  • 内容滑动切换效果怎么弄
  • python的对象
  • 河南电子税务局官网app
  • 已经开具的专用发票
  • 个人所得税赡养老人可以填两个吗
  • 结转城市维护建设税
  • 中国浙江到英国伦敦多少公里
  • 河南税筹公司
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设