哪个php日期和时间工具用于GMT抵消

时间:2009-06-18 23:06:46

标签: php database utc gmt

似乎有很多方法可以在php中进行日期和时间按摩。我通常只处理当地时间。今天,我需要在UTC工作。

我正在查询API,他们给我的关于任意记录的数据是: 创建时间:2009年6月18日星期四21:44:49 +0000 *记录为“UTC记录创建时间”

utc_offset:-28800 *用户之间的差异

我需要将其转换为简单的字符串,以向用户显示数据在当地时间提交的时间和日期。

我相信,如果在加利福尼亚州,例如: 2009年6月18日星期四02:44:49

我的目标是获得一个时间值,我可以传递到date(),以便以“漂亮”的格式轻松进行格式化。

将上述创建的时间从epoch转换为秒,添加偏移量,然后将其传递给date(),真的很简单吗?要注意什么gothcha?

$created_time = 'Thu, 18 Jun 2009 21:44:49 +0000';
$utc_offset = -28800;
$seconds = strtotime($created_time);
$localized_time = $seconds + $utc_offset;

echo date(DATE_RFC822, $localized_time);

由于

2 个答案:

答案 0 :(得分:2)

PHP应该自动为你做事。我也强烈建议改为使用DateTime对象。

$dt = new DateTime($created_time); echo $dt->format(DATE_RFC2822);

PHP的日期和时间功能是时区感知的..请确保您使用的是最新版本的PHP,因为在改进这些系统方面已经做了很多工作。

答案 1 :(得分:0)

您可以使用date_default_timezone_set在时区之间切换。在您的情况下,您将从用户的个人资料中传递时区信息。正如Evert建议的那样,如果您使用的是PHP 5> = 5.2,请使用更高级的DateTime类。

<?php
echo date('h:i:s')."\n";
date_default_timezone_set('Europe/Paris');
echo date('h:i:s')."\n";
date_Default_timezone_set('UTC');
echo date('h:i:s')."\n";