今天同事遇到一个bug,获取有效期值错误,同样的代码,其他开发人员操作都没有问题。在定位跟踪后发现有效期有值,如下:

$expireDate = 2133999048;        但是在该时间戳的基础上加上1 year后, $expireDate的值为false,而不是正确的时间戳。

$expireDate = strtotime("+1 year", $expireDate);        于是将时间戳改为天数并不断寻找最终的边界在+156 days可以正常返回,超过后就无法正常返回。于是将时间戳转换成正常格式的时间

echo date("Y-m-d", $expireDate);       显示日期为2038-01-19。网上搜索一下,说是32位的unix时间戳漏洞,称为Y2K38 漏洞。64位的系统不受此影响。

Y2K38 漏洞

Y2K38,又称 Unix Millennium Bug,此漏洞将会影响到所有 32 位系统下用 UNIX 时间戳整数来记录时间的 PHP,及其它编程语言。 一个整型的变量所能保存的最大时间为 2038 年01月19 日 03:14:07。超过这个时间后,整型数值将会溢出。 从 1970 年 01 月 01 日开始,到世界标准时 2038 年 01 月 19 日星期二凌晨 03:14:07 超过 2^31 – 1。2^31 – 1 就是0x7FFFFFFF,相信很多编程员都看过,在 32 位系统里,这表示最大的有符号整数。如果用它来表示秒数,大概相当于 68.1 年,从 1970 年到 2038 年刚好是这个数。

php strtotime 2038 时间戳,PHP的strtotime计算2038年以上日期的时间戳错误相关推荐

  1. PHP的strtotime计算2038年以上日期的时间戳错误

    今天同事遇到一个bug,获取有效期值错误,同样的代码,其他开发人员操作都没有问题.在定位跟踪后发现有效期有值,如下: $expireDate = 2133999048; 但是在该时间戳的基础上加上1 ...

  2. java strtotime_PHP strtotime()与mktime():日期转时间戳

    前面我们介绍了<time() 函数>可以获取当前的时间戳,那么如果想要将一个具体的时间转换成时间戳的话该怎么办呢? PHP 中提供了两个函数可以实现将具体的日期转换为时间戳,分别是 str ...

  3. PHP 日期转换为时间戳 strtotime 与 mktime 函数

    strtotime() 函数用于将英文文本字符串表示的日期转换为时间戳,为 date() 的反函数,成功返回时间戳,否则返回 FALSE . 语法: int strtotime ( string ti ...

  4. php strtotime mktime,php mktime和strtotime

    本文章来给各位同学介绍一下利用php用strtotime或mktime指定日期数据(本周,上周,本月,上月,本季度)实例,希望对各位同学会有所帮助呀. strtotime定义和用法 strtotime ...

  5. php中strtotime的意思,php中strtotime函数用法详解

    本文实例讲述了php中strtotime函数用法.分享给大家供大家参考.具体如下: strtotime(字符串$时间[,诠释$现在])int strtotime(string $time [,int ...

  6. php中strtotime的意思,PHP中strtotime

    关于 PHP中strtotime的搜索结果 问题 对1970年之前的日期使用strtotime?mysql 我在mysql中有一个文本列,它以yyyy-mm-dd格式存储日期值.现在,在我的php页面 ...

  7. PHP 解决时间戳冲突,php 时间超出2038年 转化时间戳失败的解决方案

    PHP有效的时间戳典型范围是格林威治时间 1901 年 12 月 13 日 20:45:54    到 2038 年 1 月 19 日 03:14:07. 在32位操作系统环境下,超出2038年之后, ...

  8. php strtotime 3天后,php strtotime 问题

    $beginMon=strtotime("-1 week Monday"); $endMon=strtotime("-1 week Tuesday")-1; e ...

  9. [JavaScript] 日期时间戳的使用与计算

    日期时间戳的使用与计算 new Date()的使用 const date = new Date() console.log(date) // 2021-09-10T07:12:11.948Z cons ...

最新文章

  1. php防止网站被镜像,网站被等恶意镜像的解决、反制措施详细教程
  2. 数据解读“特殊”春运:“返乡过年”人数同比降五成,这些人成今年春运主力...
  3. linux7怎么安装yum,centos7下怎么安装yum
  4. 实用分享-免费录屏工具(无水印)
  5. 常用python内置函数_python常用内置函数
  6. python中特殊符号怎么输入_python中怎么输入引号
  7. 一到九乘法口诀VB源码
  8. 记 * 恢复ext4硬盘的数据
  9. 各种神奇的软件的注册码集合
  10. 易语言新手入门教程第十三课 - 制作QQ自动登录器
  11. python mssql get image bin_python实现mssql里点数据集到AutoCAD的文本转换
  12. Windows Phone上的相机景深计算器
  13. 一个屌丝程序猿的人生(十八)
  14. 高速收费员招聘考试题计算机题,高速公路面试题和考官题本及答案44套
  15. o2o现状及未来发展趋势是什么?
  16. 固定表格第一行(表头固定),其他行可以上下滚动
  17. latex大括号 多行公式_问题百出的MathType公式编辑器,会有替代品吗?
  18. uni-app分享小程序页面给微信好友;小程序分享无效原因;小程序分享失败原因;
  19. 51cto学院微信支付实战对接开发视频教程
  20. 信息处理工具计算机.ppt,计算机信息处理工具之一.ppt

热门文章

  1. Linux内存访问(Liunx驱动3)
  2. 山东大学计算机专业知名教授,胡思煌 山东大学主页平台管理系统--胡思煌
  3. VBA编程图表(二十一)
  4. Visa:三星Galaxy S III确定成为伦敦奥运官方手机
  5. OpenCV fitline直线拟合函数学习
  6. AutoCAD CSCAD注册命令类型的控制
  7. 使用 JavaScript 添加时间
  8. api-gateway的pom文件
  9. Java字节流读取shp_shp系列(四)——利用C++进行Shx文件的读(打开)
  10. APP游戏开发十诫!第一个雏型就要搞定的事