如何用时区设定时间?

时间:2017-06-27 08:28:55

标签: php

在我的项目时间显示为

"2017-01-01 12:00:00+03:00". 

如何将其作为

"2017-01-01 15:00:00"

4 个答案:

答案 0 :(得分:1)

你可以这样使用

echo date("Y-m-d H:i:s A",strtotime('2017-01-01 12:00:00+03:00'));

但是你会09:00:00 AM而不是15:00:00 AM,因为你的时间提前+3

https://eval.in/822865

答案 1 :(得分:0)

您的时间2017-01-01 12:00:00+03:00表示在12:00:00小时的时区内为+3小时。您不想只是将时间重新格式化为不同的显示器:

(new DateTime($yourDateInStringOrUnix))->format('Y-m-d H:i:s');

你会得到

`2017-01-01 12:00:00` //This is local time in timezone of +3 hour

答案 2 :(得分:0)

您想要为当前时间添加偏移量。使用偏移量分隔日期时间并重新计算。

<?php

date_default_timezone_set('UTC');

$date = '2017-01-01 12:00:00+03:00';

$datetime = substr($date, 0, 19); // Get date time string
$offset = substr($date, 19);  // Extract Offset

list($hours, $minutes) = explode(':', $offset);
$seconds = $hours * 60 * 60 + $minutes * 60; // Convert offset to seconds

// Recalculate date time by adding offset
echo date('Y-m-d H:i:s', strtotime($datetime) + $seconds);

?>
  

输出

     

2017-01-01 15:00:00

希望这有帮助!

答案 3 :(得分:-1)

你可以这样做。

如果这是来自您的数据,您可以这样做:

$my_date = "2017-01-01 12:00:00+03:00";
$converted_date = date('Y-m-d H:i:s', strtotime($my_date));
echo $converted_date;

但是如果你只获得当前的日期和时间,你可以这样做;

$my_date = date('Y-m-d H:i:s');
echo $my_date;