将 RFC 3339 中定义的具有时间偏移的日期转换为 PHP 中的时间戳

Convert dates with time-offset as defined in RFC 3339 to timestamp in PHP

我正在尝试将给定日期与当前日期进行比较,但我遇到了问题,如果我使用的日期格式如 RFC 3339 中所述使用时间偏移。

例如给定的时间字符串是“2015-10-16T13:00:00Z+02:00”,我想得到差异:

$difference = strtotime("2015-10-16T13:00:00Z+02:00") - time();

但是 $difference 设置为与我使用“2015-10-16T13:00:00Z”时的设置相同。

我还使用 date_default_timezone_set 将默认时区设置为 "UTC" 但这没有任何改变。

如果我使用的是没有结尾 "Z" 的时间字符串(例如“2015-10-16T13:00:00”),一切正常。

谁能帮我解决这个问题?

输入有问题。 Z+02:00 无效。

ISO8601 / RFC3339 允许 Z+02:00 - 不能两者兼而有之。 (Z 表示 +00:00