【问题标题】:How do you change the timezone in PHP for an existing timestamp?如何在 PHP 中更改现有时间戳的时区?
【发布时间】:2011-01-06 21:23:30
【问题描述】:

日期时间函数代码:

function date_and_time($format,$timestamp) {

$date_and_time = date($format,$timestamp);
return $date_and_time;

}

然后是显示它的代码:

    <?php

        echo date_and_time("dS F Y", strtotime($profile[last_activity_date_and_time]));

    ?>

$profile[last_activity_date_and_time] 的值为 2010-01-18 14:34:04

显示时显示为 2010 年 1 月 18 日 - 下午 2:34

但是,有什么办法可以改变它显示的时区吗?

【问题讨论】:

    标签: php datetime date time timezone


    【解决方案1】:

    不确定这是否是您要查找的内容,但请尝试DateTime

    date_default_timezone_set('Europe/London');
    
    $datetime = new DateTime();
    $datetime->setTimestamp($yourTimestamp);
    echo $datetime->getTimezone()->getName();
    echo $datetime->format(DATE_ATOM);
    
    $la_time = new DateTimeZone('America/Los_Angeles');
    $datetime->setTimezone($la_time);
    echo $datetime->getTimezone()->getName();
    echo $datetime->format(DATE_ATOM);
    

    【讨论】:

    • 其他答案解决了为新日期调整时区的问题,但是您的答案是唯一解决为现有日期调整时区的问题。
    【解决方案2】:

    您可以使用this function 设置默认时区:

    date_default_timezone_set('Europe/London');
    

    【讨论】:

    • 是的,但这似乎只适用于新的时间戳,而不是现有的
    猜你喜欢
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 2021-05-08
    • 1970-01-01
    • 2013-08-17
    • 2015-04-20
    相关资源
    最近更新 更多