Php 时间RFC3339格式,到时区。

Php 时间RFC3339格式,到时区。,php,Php,我需要将此时间转换为UTC+00时区时间。它给我一个带有时区的日期,这取决于用户使用RFC3339格式的位置。看起来是这样的 2000-01-01T00:00:00+02:00 我需要使用+02时区并正确计算日期。 因此,我的想法是:我是否只需检查从日期算起的最后00:00和-或+天是多少?或者,在php端是否确实可以使用诸如time\u convert()等函数 我做过这个,但我不确定它是否正确 $date = '2000-01-01 00:00:00+02:00'; $date_date

我需要将此时间转换为UTC+00时区时间。它给我一个带有时区的日期,这取决于用户使用RFC3339格式的位置。看起来是这样的

2000-01-01T00:00:00+02:00
我需要使用+02时区并正确计算日期。 因此,我的想法是:我是否只需检查从日期算起的最后00:00和-或+天是多少?或者,在php端是否确实可以使用诸如
time\u convert()
等函数

我做过这个,但我不确定它是否正确

$date = '2000-01-01 00:00:00+02:00';
$date_date = substr($date, 0, 19);
$add_hours = substr($date, 19, 22)*3600;
$add_mins = substr($date, 23, 25)*60;
$add_secs = $add_hours+$add_mins;
$date = date('Y-m-d H:m:i', strtotime($date_date)+$add_secs);

您可能可以将
DateTime
DateTimeZone
一起使用,以获取所需内容

下面是一个如何使用它的快速示例

<?php


$date = new DateTime('now', new DateTimeZone('UTC'));
$date->setTimezone(new DateTimeZone('America/Los_Angeles'));

echo $date->format('Y-m-d H:i:s'); // Converted to LA timezone.

您可以像这样简单地完成:

$date = new DateTime('now')
$date->format('c')
echo $date;
输出:2018-11-12T15:55:00+00:00

ISO 8601=RFC3339

Fromat=c | ISO 8601数据(PHP5中的hinzugefügt)Beispeel:2004-02-12T15:19:21+00:00


Format=r | Gemäß»RFC 2822格式化程序数据beispel:Thu,2000年12月21日16:01:07+0200。 看

您可以使用以下方法获得所需的结果:

$date = strtotime("2000-01-01 00:00:00+02:00");
$utc = gmdate("Y-m-d H:i:sP", $date);

其中p是GMT的偏移量。

查找
DateTime
类它有一个很好的日期计算界面。尝试一下,如果你有问题,你可以更新你的问题。