php时间日期处理到2038年之后该怎么办?工作时思考事情才发现的一个问题,果要把日期转换成时间戳可以使用strtotime()函数实现,下面给大家讲解一下。
最根本的方法,就是使用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年后的时间,最好使用这个类来处理。