unix时间2038问题
自从找到工作之后好久没有更博客了。。。今天写php的时候遇到了个神奇的问题,现在来说一说~
在php的时间方法里,mktime用的是unix时间戳,返回一个日期的 UNIX 时间戳。然后使用它来查找该日期的天。
语法:
mktime(hour,minute,second,month,day,year,is_dst);
如图,当我将year设为2038时
效果如下,可正常显示为2038年1月1日
but~当我将year改为2050年时————
什么鬼?!我明明写的2050年好吗?!为毛给我显示成1970年1月1日??
于是不信邪的我又尝试了其他的时间,发现只要year大于2038就显示成1970!!what?这么神奇?!难道2038年是世界末日嘛!!
在一番脑洞大开之后,我仔细观察了一下,1970-1-1 08:00:00 咦?怎么这个时间这么熟悉呢??这不是UNIX时间戳为0的时间嘛。。。
于是我去网上查了一下关于unix时间戳相关的知识,发现:
所有使用UNIX时间表示时间的程序都将受其影响,因为它们以自1970年1月1日经过的秒数(忽略闰秒)来表示时间。
依照此“time_t”标准,在此格式能被表示的最后时间是2038年1月19日 03:14:07,星期二(UTC)。超过此一瞬间,时间将会被掩盖(wrap around)且在内部被表示为一个负数,并造成程序无法工作,因为它们无法将此时间识别为2038年,而可能会依个别实作而跳回1970年或1901 年。错误的计算及动作可能因此产生。
其实就是在32位系统上,长度溢出导致的异常。
嗷嗷原来是这样啊。。那2038年之后咋办呢?这不马上就要到了么?毕竟我还年轻⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄
于是,找到了这个 ↓
开源自由软件社区开始对2038年问题展开努力
好吧好吧(∩_∩),这我就放心啦~
所以叻~遇到2038这个问题的同学们就不用担心啦,安心用吧,会有替代方案的,我们就坐等问题解决吧O(∩_∩)O~~
unix时间2038问题相关推荐
- Go 学习笔记(48)— Go 标准库之 time (获取时/分/秒的单位值、标准时间和Unix时间转换、字符串时间和Time类型转换、时区转换、时间的加减/休眠)
1. 概要说明 import "time" time 包提供了时间的显示和测量用的函数.日历的计算采用的是公历. Go 提供以下几种时间类型: 时间点 Time 时间段 Durat ...
- Unix 时间表示方式与windows时间表示方式相互转换的解决办法
Unix时间时间表示方式与windows时间表示方式相互转换的解决办法. 简单描述问题:(以上问题仅限在VC++6.0或更低的开发环境下实现.当然VS2005,VS2008中可能有更好的解决办法,但是 ...
- Unix时间戳 POSIX时间 Unix时间
时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数,也被称为 Unix 时间戳(Unix Timestamp). Unix时间戳(Unix timestamp),或称Uni ...
- vb.net 同时给多个属性赋值_Python尚学堂高淇|1721时间表示unix时间点毫秒微秒time模块浮点数自动转换强制转换增强赋值运算符...
017浮点数-自动转换-强制转换-增强赋值运算符浮点数称为float用a*b^10形式表示的科学计数法,比如:3.14,314E-2或者314e-2这些数字在内存当中也是按照科学计数法存储. > ...
- linux 时间戳 微妙,unix时间点_毫秒和微妙_time模块
时间的表示 计算机中时间的表示是从"1970 年 1 月 1 日 00:00:00"开始,以毫秒(1/1000 秒) 进行计算.我们也把 1970 年这个时刻成为"uni ...
- C#之Unix时间和北京时间互转
Unix时间起始时间为1970年1月1日0时0分0秒 北京时间起始时间为1970年1月1日8时0分0秒 北京时间转Unix时间如下: DateTime dtUnix = new DateTime(19 ...
- python时间函数纳秒_在Python中以秒和纳秒获取POSIX / Unix时间?
我一直在努力找到一种方法来获取自1970-01-01 00:00:00 UTC以来的时间,以秒为单位,在python中以纳秒为单位,我找不到能给我正确精度的任何东西. 我尝试过使用时间模块,但是精度只 ...
- UNIX时间与GPS时间
Unix时间起始于:1970年1月01日 GPS时间起始于:1980年1月06日 如果不考虑GPS跳秒的影响,两个时间系统的差值为315964800.目前GPS多次跳秒,计算时务必考虑此影响. UNI ...
- php gmt文本转时间,PHP 使用gmdate将一个UNIX 时间格式化成 GMT 文本的简单示例
对PHP gmdate –将一个UNIX 时间格式化成 GMT 文本感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 语法如下: /** * PHP gmdate –将一个UNIX 时间格 ...
最新文章
- 负载均衡算法-权重轮询均衡
- android viewpager 复杂指示器_View Pager 性能优化之 无限循环
- Access 数据库连接字符串 (有密码)
- 【Linux入门到精通系列讲解】内存管理malloc和free函数
- 随手小记 才知道系列
- C#7.0之ref locals and returns (局部变量和引用返回,之前欠大家的,现在补上)
- 创业公司其实根本不需要管理
- JS的document.all函数使用 示例
- oracle中存在函数吗,Oracle中的函数
- 修正memcache.php中的错误示例
- Linux下装完mysql后默认密码是多少
- bzoj 1492: [NOI2007]货币兑换Cash
- 解压tar.xz文件和tar.gz文件
- 亲密关系-【有效表达】-如何完善自己的表达思路?
- Tcl/tk glob nocomplain source
- iOS之StatusBar详解
- VISIO画图软件安装
- STM32 CubeMX 串口通信
- catia设计树_在CATIA目录树上**零件号原来这么简单!
- ACM新手入门之杭电150题使用指南及C语言学习推荐