在 PHP 中将时间和日期从一个时区转换为另一个时区
基本上,我需要的是一个脚本,当提供时间和时区时,可以返回另一个时区的时间。
我的主要问题是:
- 从哪里获取GMT的时间偏移量 - 是否有可用于此目的的公共数据库?
- 如何同时考虑夏令时 (DST) 的差异。
- 如何很好地将其全部包装在PHP类中 - 或者已经有这样的类可用?
基本上,我需要的是一个脚本,当提供时间和时区时,可以返回另一个时区的时间。
我的主要问题是:
<?php
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
?>
以上示例将输出:
2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45
编辑:就像Pekka说的:DateTime类从5.2开始存在,在那里你首先必须找出哪些方法真正实现,哪些方法只从5.3开始存在。
试试这个,它可能会有所帮助:)
function converToTz($time="",$toTz='',$fromTz='')
{
// timezone by php friendly values
$date = new DateTime($time, new DateTimeZone($fromTz));
$date->setTimezone(new DateTimeZone($toTz));
$time= $date->format('Y-m-d H:i:s');
return $time;
}
一点描述:该函数采用 3 个输入、转换时间、转换为时区、当前时区,并以指定格式返回输出。