gmdate用于格式化GMT(=UTC(输出。参见PHP:gmdate-手动
我需要将此时间转换为UTC+00时区时间。它以RFC3339格式为我提供了一个日期和时区,具体取决于用户所在的位置。所以它看起来像这个
2000-01-01T00:00:00+02:00
我需要使用+02时区并正确计算日期。所以我的想法是:我只是检查一下自该日期起的最后00:00和-或+天是什么吗?或者实际上有一些函数可以从php端使用,比如time_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);
您可以使用获得您想要的结果
$date = strtotime("2000-01-01 00:00:00+02:00");
$utc = gmdate("Y-m-d H:i:sP", $date);
其中p是与GMT的偏移量。
您可能可以将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.