UTC 日期/时间字符串到时区

2022-08-30 09:14:09

如何将 UTC 的日期/时间字符串(例如 2011-01-01 15:00:00)转换为任何给定的时区 php 支持,例如 America/New_York 或 Europe/San_Marino。


答案 1

PHP的DateTime对象非常灵活。

$UTC = new DateTimeZone("UTC");
$newTZ = new DateTimeZone("America/New_York");
$date = new DateTime( "2011-01-01 15:00:00", $UTC );
$date->setTimezone( $newTZ );
echo $date->format('Y-m-d H:i:s');

答案 2

PHP的DateTime对象非常灵活。

由于用户要求多个时区选项,因此您可以将其通用化。

通用函数

function convertDateFromTimezone($date,$timezone,$timezone_to,$format){
 $date = new DateTime($date,new DateTimeZone($timezone));
 $date->setTimezone( new DateTimeZone($timezone_to) );
 return $date->format($format);
}

用法:

echo  convertDateFromTimezone('2011-04-21 13:14','UTC','America/New_York','Y-m-d H:i:s');

输出:

2011-04-21 09:14:00


推荐