繁体   English   中英

如何将UTC日期时间转换为另一个时区?

[英]How to convert UTC datetime to another timezone?

如何将这样的日期转换为: 2012-07-16 01:00:00 +00 (在UTC +00:00时区)到UTC +04:00时区? 确保夏令时能正确处理?

使用DateTimeDateTimeZone

$date = new DateTime('2012-07-16 01:00:00 +00');
$date->setTimezone(new DateTimeZone('Europe/Moscow')); // +04

echo $date->format('Y-m-d H:i:s'); // 2012-07-15 05:00:00 

为了提供解决方案,您需要获取字符串的最后一部分(偏移部分),然后通过简单的查找对其进行查找。 您可以使用regex或substr() (也许)来获取最重要的部分。 然后,当您具有+或-值时,请针对可以与PHP的可能时区一起使用的可能时区最多使用24个查找-如果偏移量相同,谁在乎实际的国家/地区是什么?

使用date_default_timezone_set来应用正确的一个。

您还可以使用格林尼治标准时间,然后将其转换为您的要求

<?php
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>

GMT是格林威治标准时间,在世界各地都很普遍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM