似乎有很多方法可以在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);

由于

有帮助吗?

解决方案

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

<代码>

<代码>

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

<代码>

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

其他提示

您可以使用 date_default_timezone_set 在时区之间切换。在您的情况下,您将从用户的个人资料中传递时区信息。正如Evert建议的那样,如果您使用的是PHP 5&gt; = 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";
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top