如何在 PHP 中将 ISO8601 日期转换为其他格式?

发布于 2024-11-17 06:45:12 字数 171 浏览 5 评论 0原文

Facebook 以 ISO8601 格式输出日期 - 例如: 2011-09-02T18:00:00

使用 PHP,如何将其重新格式化为: 2011 年 9 月 2 日星期五下午 6:00

注意 - 我是用 Javascript 做的,但是 IE 有日期错误,所以我想要一个跨浏览器的解决方案。

Facebook outputs dates in ISO8601 format - e.g.:
2011-09-02T18:00:00

Using PHP, how can I reformat into something like:
Friday, September 2nd 2011 at 6:00pm

Nb - I was doing it in Javascript, but IE has date bugs so I want a cross-browser solution.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(2

朦胧时间 2024-11-24 06:45:12

快速但有时不可靠的解决方案:

$date = '2011-09-02T18:00:00';

$time = strtotime($date);

$fixed = date('l, F jS Y \a\t g:ia', $time); // 'a' and 't' are escaped as they are a format char.

格式字符详细信息此处

A fast but sometimes-unreliable solution:

$date = '2011-09-02T18:00:00';

$time = strtotime($date);

$fixed = date('l, F jS Y \a\t g:ia', $time); // 'a' and 't' are escaped as they are a format char.

Format characters detailed here.

≈。彩虹 2024-11-24 06:45:12

从 ISO 8601 转换为 unixtimestamp :

strtotime('2012-01-18T11:45:00+01:00');
// Output : 1326883500

从 unixtimestamp 转换为 ISO 8601 (时区服务器) :

date_format(date_timestamp_set(new DateTime(), 1326883500), 'c');
// Output : 2012-01-18T11:45:00+01:00

从 unixtimestamp 转换为 ISO 8601 (GMT) :

date_format(date_create('@'. 1326883500), 'c') . "\n";
// Output : 2012-01-18T10:45:00+00:00

从 unixtimestamp 转换为 ISO 8601 (自定义时区) :

date_format(date_timestamp_set(new DateTime(), 1326883500)->setTimezone(new DateTimeZone('America/New_York')), 'c');
// Output : 2012-01-18T05:45:00-05:00

Converting from ISO 8601 to unixtimestamp :

strtotime('2012-01-18T11:45:00+01:00');
// Output : 1326883500

Converting from unixtimestamp to ISO 8601 (timezone server) :

date_format(date_timestamp_set(new DateTime(), 1326883500), 'c');
// Output : 2012-01-18T11:45:00+01:00

Converting from unixtimestamp to ISO 8601 (GMT) :

date_format(date_create('@'. 1326883500), 'c') . "\n";
// Output : 2012-01-18T10:45:00+00:00

Converting from unixtimestamp to ISO 8601 (custom timezone) :

date_format(date_timestamp_set(new DateTime(), 1326883500)->setTimezone(new DateTimeZone('America/New_York')), 'c');
// Output : 2012-01-18T05:45:00-05:00
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文