使用哪些 php 日期和时间工具进行 GMT 偏移
看来有很多方法可以在 php 中处理日期和时间。 我通常只处理当地时间。 今天,我需要在 UTC 工作。
我正在查询 API,他们给我的关于任意记录的数据是: 创建时间:2009 年 6 月 18 日星期四 21:44:49 +0000 * 记录为“UTC 记录创建时间”
utc_offset:-28800 * 用户之间的差异
我需要将其转换为一个简单的字符串,以向用户显示数据在其本地时间提交的时间和日期。
我相信,如果在加利福尼亚州,上述内容可以翻译为: 2009 年 6 月 18 日星期四 02:44:49 PM
我的目标是获得一个可以传递给 date() 的时间值,以便以“漂亮”的格式轻松格式化。
它真的像将上面创建的时间转换为从纪元开始的秒数一样简单,添加偏移量,然后将其传递给 date() 吗? 有什么值得留意的哥特查吗?
$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);
谢谢
It appears there are many ways to approach date and time massaging in php. I usually am only every dealing with local time. Today, I need to work in UTC.
I am querying against an API, the data they give me about an arbitrary record is:
created: Thu, 18 Jun 2009 21:44:49 +0000
* Documented as 'UTC record creation time'
utc_offset: -28800
* Difference between users re
I need to convert that to a simple string to show the user what time and date the data was submitted in their local time.
I believe, the above translates to, if in Calif. for example:
Thursday 18th of June 2009 02:44:49 PM
My goal is to get to a time value I can pass to date() for easy formatting in a "pretty" format.
Is it really as simple as converting the above created time to seconds from epoch, adding in the offset, and then passing that to date()? Any gothcha's to look out for?
$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);
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
PHP 应该自动为你做事。 我还强烈建议使用 DateTime 对象。
$dt = new DateTime($created_time);
回声 $dt-> 格式(DATE_RFC2822);
PHP 的日期和时间函数能够识别时区。请确保您使用的是最新版本的 PHP,因为在改进这些系统方面已经做了很多工作。
PHP should do thing automatically for you. I can also HIGHLY recommend using the DateTime object instead.
$dt = new DateTime($created_time);
echo $dt->format(DATE_RFC2822);
PHP's date and time functions are timezone aware.. Make sure you're on a recent version of PHP, because a lot of work has been done in improving these systems.
您可以使用 date_default_timezone_set 在时区之间切换。 在您的情况下,您将从用户的个人资料中传递时区信息。 正如 Evert 建议的,如果您使用 PHP 5>=5.2,请使用更高级的 DateTime 类。
You can use date_default_timezone_set to switch between timezones. In your case, you would pass the timezone information from the user's profile. As Evert recommended, if you are using PHP 5>=5.2, please use the more advanced DateTime class.