3

我有这个字符串2012-06-27 16:17:06,我想将其转换为 GMT 格式。
我怎样才能做到这一点?

非常感谢。

4

6 回答 6

6

使用gmdate()
通过使用将当前日期格式转换为 UNIX 时间戳strtotime,然后使用gmdate($format, $timestamp);

于 2012-07-03T21:47:50.477 回答
2

好吧,严格来说你做不到。如果您不知道该日期是在哪个 TZ 中生成的,则无法将其转换为另一个 TZ。

如果该日期来自数据库,您可能可以使用原始 TZ 查询日期。

$date = new DateTime( "2011-01-01 15:00:00", $original_TZ ); 
$date->setTimezone( "GMT" );
于 2012-07-03T22:15:19.040 回答
1

PHP 的 DateTime 对象是一个不错的选择:

$GMT = new DateTimeZone("GMT");
$date = new DateTime( "2011-01-01 15:00:00", $GMT );
$date->setTimezone( $newTZ );
echo $date->format('Y-m-d H:i:s'); 
于 2012-07-03T21:51:33.960 回答
1
// Set timeline
$time_line = time() +7200; // <-- this is timeline +2
$h = gmdate('h', $time_line);
$i = gmdate('i', $time_line);
$s = gmdate('s', $time_line);

$time = $h.":".$i.":".$s;

echo $time;
于 2012-07-03T22:05:39.190 回答
1

试试这个,它会工作

$newTZ = new DateTimeZone("Asia/Calcutta");
date_default_timezone_set("Asia/Calcutta");  
$GMT = new DateTimeZone("GMT");
$date = new DateTime( "2018-09-20 6:00:00 PM", $newTZ );
$date->setTimezone($GMT);
echo $date->format('Y-m-d H:i:s');
于 2018-09-20T13:09:29.167 回答
0

尝试这个。

$time = '2012-06-27 16:17:06';
echo date("l, F j, Y, g:i a",strtotime($time) ); // assuming gmt format

取自如何在 PHP 中获得格林威治标准时间?

于 2012-07-03T21:50:33.427 回答