社区
UNIX文化
帖子详情
unix2038问题是什么
小水晶
2007-03-30 02:54:46
这期程序员上看到说64位是否能解决unix2038问题,请问这个问题是什么问题?我在网上找了好久也没搜到相关的具体解释.
...全文
279
3
打赏
收藏
unix2038问题是什么
这期程序员上看到说64位是否能解决unix2038问题,请问这个问题是什么问题?我在网上找了好久也没搜到相关的具体解释.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
小水晶
2007-04-02
打赏
举报
回复
谢谢大家
yecheng_110
2007-03-30
打赏
举报
回复
http://www.chinaunix.net/jh/23/883837.html
UNIX操作系统中的时间
UNIX及Linux的时间系统是由「新纪元时间」Epoch开始计算起,单位为秒,Epoch则是指定为1970年一月一日凌晨零点零分零秒,格林威治时间。
目前大部份的UNIX系统都是用32位元来记录时间,正值表示为1970以後,负值则表示1970年以前。我们可以很简单地计算出其时间领域(当前几乎所有操作系统都假定 1 天 = 24 × 60 × 60 = 86400 秒):
2^31/86400(s) = 24855.13481(天) ~ 68.0958(年)
1970+68.0958 = 2038.0958
1970-68.0958 = 1901.9042
时间领域为[1901.9042,2038.0958], 这就是所谓的UNIX 2038 BUG
在一些64位元的平台上,例如Digital Alpha、SGI、Sparc等等,则用64位元来表示时间。
2^63/86400 ~ 1E14(天) ~ 2.92E11(年)
大约是292亿年,这样就无需担心了。不过虽然到2038年时,大部分目前32位元或更低位元的计算机将被64位元或更高位元的计算机所替代,不过对那些依然在服役的32位元或更低位元的计算机依然需要处理该问题。
yecheng_110
2007-03-30
打赏
举报
回复
UNIX现在表示时间的方式只能到2038年
将
Unix
时间time_t扩展到2106-02-07 06:28:16 (原本
Unix
时间只能支持到
2038
-01-19 03:14:07)
将
Unix
时间time_t扩展到2106-02-07 06:28:16 (原本
Unix
时间只能支持到
2038
-01-19 03:14:07)
PHP基于DateTime类解决
Unix
时间戳与日期互转
问题
【针对1970年前及
2038
年后时间戳】
本文实例讲述了PHP基于DateTime类解决
Unix
时间戳与日期互转
问题
。分享给大家供大家参考,具体如下: 这个
问题
主要在32位的系统下出现,64位的不存在这样的
问题
。php 5.2+提供了DateTime类来处理这样的
问题
,参考方案如下(请注意时区的处理): //1、
Unix
时间戳转日期 function
unix
time_to_date($
unix
time, $timezone = 'PRC') { $datetime = new DateTime(@$
unix
time); //DateTime类的bug,加入@可以将
Unix
时间戳作为参数传入 $datetime->set
php实现兼容
2038
年后
Unix
时间戳转换函数
主要介绍了php实现兼容
2038
年后
Unix
时间戳转换函数,使用方法和就的函数一样,非常实用,推荐给大家,希望大家能够喜欢。
关于PHP转换超过
2038
年日期出错的
问题
解决
前言 最近在写一个项目接口。测试中发现服务器上测试正常的功能,在本地一直有
问题
。一步步的排查,最终锁定
问题
是由于函数strtotime返回了一个false值,导致数据插入数据库失败。 相同代码运行结果不一样,原因那就是环境不一致导致。要么是PHP版本不同,要么是位数不同。 我电脑是64位的。这里是PHP位数不一致,服务器使用64位,而我本地是32位。而strtotime被传入了一个字符串2050-1-1 23:59:59,该参数大于了
2038
-1-19 03:14:07所以在32位PHP下直接返回false,而64位PHP不受影响。 Y2K38漏洞 导致上述
问题
的根本原因就是Y2K38漏洞,
PHP 时间转换
Unix
时间戳代码
复制代码 代码如下:<?php date_default_timezone_set(‘Asia/Chongqing’); $time1 = “2006-04-16 08:40:54”; $time2 = strtotime($time1); echo $time2; echo date(‘Y-m-d h:i:s’,$time2); ?> 您可能感兴趣的文章:php实现兼容
2038
年后
Unix
时间戳转换函数PHP中
UNIX
时间戳和日期间的转换与计算实例php 创建以
UNIX
时间戳命名的文件夹(示例代码)PHP+Mysql日期时间如何转换(
UNIX
时
UNIX文化
2,161
社区成员
4,355
社区内容
发帖
与我相关
我的任务
UNIX文化
Linux/Unix社区 UNIX文化
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 UNIX文化
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章