位置: 编程技术 - 正文

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

  • 银行内部利息支出
  • 横向转拨财政款应通过什么科目
  • 长期借款科目核算的是企业的长期借款本金和利息
  • 应收代位追偿款是什么意思
  • 固定资产认证进项在勾选平台勾吗
  • 企业固定资产出租取得的收入属于
  • 个人交物业费开发票交税点吗
  • 促销服务费能抵增值税吗
  • 倒增值税发票过程
  • 湿租增值税税率多少
  • 承包方给发包方付费
  • 野生药才收购网
  • 中央财政补贴政策
  • 预缴的税款可以互抵吗
  • 外包物流适用范围
  • 汇款退回重新汇到银行卡
  • 建筑施工企业在12个月内连续发生
  • 电器维修公司买什么保险
  • 一般纳税人出租其2016年4月30日前取得的不动产
  • linux系统文件压缩命令
  • 支付宝提现到企业账户 怎么开票
  • php文本转数字
  • 移动临时文件
  • 支付给代理机构的手续费
  • 其他货币资金属于资产类科目
  • 收回前欠货款会导致资产总额增加吗
  • 非货币性资产交换
  • 企业办理税务
  • 企业会计准则存在的问题怎么写
  • phpqrcode
  • js中写php代码
  • vue数据表
  • nerf代码
  • 计提工会经费的标准
  • 待抵扣进项税额和进项税额的区别
  • 预缴税款怎么做会计分录
  • 织梦cms官网
  • 异地预缴附加税会计分录
  • 税法增值税的不同
  • 卖出看跌期权的最大损失
  • 应纳税所得额是净利润吗
  • 制造业企业无形资产怎么摊销
  • 未开票收入不入账以规避税收
  • 所得税调增调减技巧
  • 职业年金是不是养老保险
  • 息税前利润与盈亏平衡点
  • 跨月发票红冲怎么做账务处理
  • 租赁房屋取得发票怎么开
  • 收到采购免费赔偿怎么办
  • 暂估未取得发票汇缴纳税调增怎么填
  • 营业账簿如何缴纳税款
  • 通行费电子发票抵扣填写到附表二的第几栏次
  • 等额本金还款计算公式
  • 企业预交所得税税率
  • 固定资产如何管理
  • 锁mysql
  • mac下安装python
  • win10预览版和正式版区别
  • sendmailadmin
  • mac如何查看隐藏的文件夹
  • linux安装vmvare
  • 装win7ahci
  • windows7文件夹选项在哪里
  • linux怎么配置vim
  • win8软件不兼容怎么办
  • 详细测试就是全部测试
  • unity connected games
  • javascript运行在什么的脚本语言
  • JQuery ZTree使用方法详解
  • django pypi
  • vue基于什么
  • ntp ntpdate
  • 菜鸟教程安卓
  • 安卓开发 内存
  • js数组用法
  • 西安市电子税务局
  • 农机免税范围
  • 加油发票如何抵扣
  • 证券行业的税务问题
  • 增值税纳税申报表附列资料(三)
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设