当前位置:首页> 编程笔记> PHP 开发
关键字
文章内容
怎样解决校正PHP服务器时间不准的问题
 
 
修改时间:[2012/06/30 18:30]    阅读次数:[6934]    发表者:[沩筱]
 

关于怎样解决PHP服务器时间不准的问题,得针对不同的情况进行不同的处理。

下面是经常遇到的情况,及应对办法。

1.PHP服务器时区不对,使用下面代码修正:

<?php
 $timezone = "PRC";
 if(function_exists('date_default_timezone_set')){
    date_default_timezone_set($timezone);
 }
 echo date('d-m-Y H:i:s');
 ?>

或修改PHP.INI文件后重新启动IIS或APACHE服务器

date.timezone = RPC

2.PHP服务器的时间不对,不是时区,该问题解决方法如下:

方法一 如果你是管理员,直接去调整服务器的时间,只要服务器时间校正了,就没问题了。

方法二 如果没法修改服务器时间,又要PHP程序显示的时间正确,那得通过PHP代码来实现。具体过程如下:

在全局配置文件中,添加时间提前量。

$webdb['correctiontime'] = '-110';//把服务器时间减去110秒

书写时间显示函数:

//格式化时间为年月日
function day($time = '') {
    global $webdb;
    if (!$time) {
        $time = time();
    }
    return date("Y/m/d",$time+$webdb[correctiontime]);
}
//格式化时间为年月日时分秒
function daytime($time = '') {
    global $webdb;
    if (!$time) {
        $time = time();
    }
    return date("Y/m/d H:i:s",$time+$webdb[correctiontime]);
}
//格式化时间为[2012/06/30 18:24]
function dayshorttime($time = '') {
    global $webdb;
    if (!$time) {
        $time = time();
    }
    return date("Y/m/d H:i",$time+$webdb[correctiontime]);
}

最后,在所有要显示PHP时间的地方,调用上面3个函数中的其中一个。

平时还是喜欢用最后一种方法,因为不能保证虚拟服务器的时间是完全准确的世界时间。

如果你有系统管理权限,那又另当别论。