【问题标题】:Convert TIMESTAMP and timezone to a different timezone [duplicate]将 TIMESTAMP 和时区转换为不同的时区 [重复]
【发布时间】:2016-08-07 18:21:31
【问题描述】:

所以我在 DB 中有一个像这样的时间戳:2016-03-31 21:10:15 这个 get 在 db 中设置到服务器 timezonedate_default_timezone_set("America/Los_Angeles");

现在,当我列出需要将其转换为存储在其他地方的用户时区的数据时,有没有办法将其转换并显示在不同的时区?

因此,如果“America/Los_Angeles”是下午 5:00,我需要将其转换为 New_York,例如并显示该时间,但对于 New_York 时区,我想你知道我的意思。

【问题讨论】:

  • 为未来的项目帮自己一个忙,并将所有内容都存储为 UTC,并且在显示时仅针对特定时区进行格式化。这需要做更多的工作,但拥有一致的时间格式会对您的理智产生奇迹。

标签: php mysql date datetime


【解决方案1】:

使用 DateTime 对象,您可以随心所欲地玩弄时区:

$dateTime = '2016-03-31 21:10:15';
$originalTimezone = 'America/Los_Angeles';
$newTimezone = 'America/New_York';

$dto = new DateTime($dateTime, new DateTimeZone($originalTimezone));
$dto->setTimezone(new DateTimeZone($newTimezone));

echo $dto->format('Y-m-d H:i:s');

【讨论】:

    猜你喜欢
    • 2013-08-08
    • 2016-10-21
    • 2013-12-04
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 2015-08-11
    • 1970-01-01
    相关资源
    最近更新 更多