显示与服务器时间不匹配的 UNIX 时间戳时间


displaying unix timestamp-time not matching to server time

我在PHP中使用了打印当前日期和时间:

              $now = time();
              echo date('j M, Y H:i:s',$now); 

就日期,月份,年份而言,结果是准确的。但是时间在同一台计算机上不匹配(就像在本地主机中测试一样)。PHP 脚本显示: 9 十一月, 2013 02:35:11 而我的电脑上的时间是: 8:05 上午

三种方法可以使用时区:

  1. 在 php.ini 文件中设置默认时区(不推荐):

    [Date]
    ; Defines the default timezone used by the date functions
    ; http://php.net/date.timezone
    date.timezone = America/Sao_Paulo
    

    这仅适用于在此 php.ini 配置的服务器上运行的 PHP 文件。

  2. 在初始化 PHP 脚本中设置默认时区:

    date_deafult_timezone_set

    date_default_timezone_set('America/Sao_Paulo');
    

    这将适用于几乎所有脚本。

  3. 使用日期时区对象:

    $date = new DateTime('2013-11-09 01:08:32', new DateTimeZone('America/Sao_Paulo'));
    

    这将适用于所有脚本,但可能会变得有点乏味。

原因是你的php.ini使用的是不同的时区。

也许这会对你有用(当然要改变你的时区):

date_default_timezone_set("America/Phoenix");

转换功能:

// converts from UTC to Phoenix time
function timezone_convert($datetime) {
    $datetime = new DateTime($datetime);
    $phx_time = new DateTimeZone('America/Phoenix');
    $datetime->setTimezone($phx_time);
    $datetime = $datetime->format('Y-m-d H:i:s');   
    return $datetime;
}