2038年问题 php,php strtotime() mktime() 的2038年问题 Y2K38漏洞
Y2K38 漏洞是什么?
Y2K38,又称 Unix Millennium Bug, 这个漏洞将会影响到所有 32 位系统下用 UNIX
时间戳整数来记录时间的 PHP,及其它编程语言。一个整型的变量所能保存的最大时间为 2038 年 1 月 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
年刚好是这个数。
是的,这是 28
年以后的事情了。你们肯定有些人认为我是在忋人忧天。要知道世纪末的千年虫问题就是这样产生的。另外,我们在开发一些应用的时候,可能会用到未来的日期,比如一个
25 年期的长期存款,退休金和保险业的财务数据等。
64 位系统会受到影响吗?
理论上不会,如果你是在 64 位的操作系统下使用 PHP,你的程序应该不会受到影响。我强烈建议你进行一下测试。64
位系统下可以保存的日期最远日期是现在宇宙年龄的 21 倍~ 292 亿年。
如果你确认你的财务系统运行在 64 位系统上的话,你可以安稳的睡个大头觉了。
有其它的解决方法吗?
幸运的是,PHP 从 5.2 版本开始引入了一个 DateTime 的类 (5.1 中开始实验加入,5.3
版本中扩展了一些方法)…
$date = '2040-02-01';
$format = 'Y-m-d H:i';
$mydate2 = new DateTime($date);
echo '
正常时间:',
$mydate2->format($format),
'
';
echo '时间溢出:',date('Y-m-d H:i',strtotime($date));
exit;
?>
2038年问题 php,php strtotime() mktime() 的2038年问题 Y2K38漏洞相关推荐
- php strtotime 2038 时间戳,PHP的strtotime计算2038年以上日期的时间戳错误
今天同事遇到一个bug,获取有效期值错误,同样的代码,其他开发人员操作都没有问题.在定位跟踪后发现有效期有值,如下: $expireDate = 2133999048; 但是在该时间戳的 ...
- mysql 2038年问题_关于PHP转换超过2038年日期出错的问题解决
前言 最近在写一个项目接口.测试中发现服务器上测试正常的功能,在本地一直有问题.一步步的排查,最终锁定问题是由于函数strtotime返回了一个false值,导致数据插入数据库失败. 相同代码运行结果 ...
- php strtotime mktime,php中time()和mktime()用法的区别分析
在php编程中,时间函数time(),返回当前时间的.而mktime()函数,不是返回当前时间,而是格式化时间. 虽然单独写mktime()而不加任何参数如:echo mktime()和echo ti ...
- PHP date, strtotime, mktime处理
今天经过几个工作日(周一-周五)后为哪天. 2016-09-08经过5个工作日为2016-09-14 $currentDate=date('Y-m-d', strtotime("-1 day ...
- php strtotime mktime,php mktime和strtotime
本文章来给各位同学介绍一下利用php用strtotime或mktime指定日期数据(本周,上周,本月,上月,本季度)实例,希望对各位同学会有所帮助呀. strtotime定义和用法 strtotime ...
- 2038年问题 linux内核5.6,Linux Kernel 5.6 开发者已准备好应对 2038 年问题
2038 年问题与千年虫问题类似,它可能会导致某些软件在 2038 年 1 月 19 日 3 时 14 分 07 秒之后无法正常工作.届时,在大部分 32 位操作系统上,依据 "time_t ...
- 2038年问题 linux内核5.6,Linux Kernel 5.6 开发者已率先做好准备 应对 2038 年问题
新十年伊始,Linux Kernel 5.6的开发者已经准备好着手解决将在下一个十年到来的2038年问题(又称"Y2038"或"Unix Y2K"问题).Lin ...
- 2038计算机系统,2038年问题
2038年问题是指在使用POSIX时间的32位计算机应用程序上,格林尼治时间2038年1月19日凌晨03:14:07(北京时间:2038年1月19日中午11:14:07)之后无法正常工作. 中文名 2 ...
- 2038年问题 linux内核5.6,Linux 5.1延续为2038年问题所做的多年准备
Linux 5.1为2038年问题在内核方面继续进行大量的工作. 多年来在Linux内核一直看到"Y2038"的工作,而这一努力远未结束.Thomas Gleixner为Linux ...
最新文章
- ios nslinkattributename 自定义url_iOS音视频播放指南(二)
- Windows下更改pip镜像源
- 机器学习基础-弹性网 Elastic Net-08
- Maven构建分布式项目时子模块相互依赖打包技巧
- 计算机技能大赛图形试题,图形图像处理技能大赛竞赛试题试卷.doc
- golang 将对象转换成string_Golang 匿名 struct 解码数据技巧
- 应该怎么样学习前端呢?
- linux驱动基础开发3——linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解-转
- php操作cookie_php设置cookie【三种方案】
- MYSQL中使索引失效的情況
- 主键和外键举例_mysql 基础篇之主键和外键
- YOLOv1: You Only Look Once: Unified, Real-Time Object Detection
- 不动点迭代 开平方 Excel演示
- 【原创】(进阶)VMware16.1.2通过PE+Dism++绕过TPM限制安装Win11首个正式原版镜像
- 开机找不到硬盘的原因
- Setup Factory导入注册表时丢失部分语句
- 百度、腾讯、滴滴,如何看2019智能网联汽车发展 | 2019互联网岳麓峰会...
- Neural Voice Puppetry阅读笔记
- 「Git」常用工作流介绍
- php制作404,thinkphp制作404跳转页的简单实现方法
热门文章
- 机器学习基础(四十九)—— 总结
- C++基础::limits
- 工具的使用——vs2013
- 5岁自学python编程-三十岁了还可以学编程吗?只要你想,只要你做,什么时候都不晚...
- python零基础学习书-零基础学习python推荐几本书?
- python创意小作品-python turtle库的几个小demo
- python和java选择哪个-JAVA和Python哪个好就业?
- 博越同级别没对手!敢和同级别quot;王者quot;硬碰硬!
- R-查询子段元素和 提前储存
- vue打包后图片未显示问题