将 ISO 8601 转换为 unix 时间戳

Posted

技术标签:

【中文标题】将 ISO 8601 转换为 unix 时间戳【英文标题】:Convert ISO 8601 to unixtimestamp 【发布时间】:2012-02-13 02:14:33 【问题描述】:

如何转换 2012-01-18T11:45:00+01:00 (ISO 8601) 到 1326883500 (unixtimestamp) 在 php 中?

【问题讨论】:

【参考方案1】:
echo date("U",strtotime('2012-01-18T11:45:00+01:00'));

【讨论】:

谢谢,不知道 strtotime 知道 ISO 日期 @Codler 在这种情况下没有。我想你可能想使用另一种格式的输入/输出【参考方案2】:

从 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

【讨论】:

非常有用!非常感谢!

以上是关于将 ISO 8601 转换为 unix 时间戳的主要内容,如果未能解决你的问题,请参考以下文章

如何在scala中将ISO 8601时间戳转换为unix时间戳?

如何将周数和年份转换为 unix 时间戳?

将 Unix 纪元时间转换为扩展的 ISO8601

在 Ruby 中将 UTC 时间戳转换为 ISO 8601

在Java中将ISO 8601时间戳字符串转换为纪元秒[重复]

python iso8601日期格式与unix纪元日期时间之间的转换