php 2038年,php如何取2038年后的时间戳|php时间日期处理到2038年之后该怎么办 - PS下...

本文介绍了PHP在处理时间日期时遇到的2038年限制问题,即32位系统中时间戳的最大值。解决方法包括使用64位操作系统和PHP环境,以及利用PHP5.2开始提供的DateTime类。对于Windows用户,可以考虑使用64位的WAMP环境。此外,还提供了两个函数替代传统的date和strtotime函数,以处理超出2038年的日期转换。
摘要由CSDN通过智能技术生成

php时间日期处理到2038年之后该怎么办?工作时思考事情才发现的一个问题,果要把日期转换成时间戳可以使用strtotime()函数实现,下面给大家讲解一下。

8c6d094b9f3e8031b26c23ef48d8be83.png

最根本的方法,就是使用64位操作系统。LInux的64位系统,安装部署php的64位环境。

Windows下面,也是有64位的php环境的,所以如果必须在Windows下面部署测试环境或者生产环境,那么请选择64位Windows操作系统,部署64位的php环境。Windows下64位php环境是有的,而且还有php5.3版本。目前wamp官网已经有集成了64位php版本的wamp软件环境。这个问题是这两天给某单位的Windows服务器部署php环境才解决的问题,请题主充分发挥你的搜多引擎检索本领仔细搜索。

解决方法,例如:

/*可替换传统date函数*/$utc_value = 2247484647$curformat = 'Y-m-d';

function newDate($curformat, $utc_value)

{

while(1)

{

if($utc_value>2147483647)

{

if(date('Y', $utc_value)<2038)

{

$mydate2 = new DateTime('@'.$utcValue);

$string = $mydate2->format($curformat);

break;

}

}

$string = date($curformat, $utc_value);

break;

}

return $string;

}

/*可替换传统strtotime函数*/$str_time = '2100-10-02';

function newStrToTime($str_time)

{

$result = strtotime($str_time);

if(empty($result))

{

$date = new DateTime($str_time);

$result = $date->format('U');

}

return $result;

}

什么时候可能不遇到?你的操作系统是64位的,并且你的PHP是64位版本的。

但是,无论如何,最好还是测试一下。

PHP5.2版本开始,提供了DateTime这个类解决很好的这个Y2K38问题,假如你的应用会有可能遇到1970年前或2038年后的时间,最好使用这个类来处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值