使用哪些 php 日期和时间工具进行 GMT 偏移

发布于 2024-07-24 06:11:59 字数 684 浏览 6 评论 0原文

看来有很多方法可以在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

假装爱人 2024-07-31 06:11:59

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.

半步萧音过轻尘 2024-07-31 06:11:59

您可以使用 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";

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.

<?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";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文