1

只是一个简单的问题,我如何能够将以下日期/时间变量编辑为 PLUS(+) 小时数 5,此时它是美国时间,我需要将所有内容转换为英国时间。

$tme = date('H:i : d F Y');

有任何想法吗...?

4

5 回答 5

6

使用DateTime对象,它更健壮,并且会给您带来更少的麻烦:

$time = new DateTime("now", new DateTimeZone("America/New_York"));
$time->setTimezone(new DateTimeZone("Europe/London"));

echo $time->format("H:i:s Y-m-d");

另请注意,有了这个,您可以处理与时区相关的奇怪问题(例如某些时区在不同日期发生变化,有些时区取决于年份等),而无需进行任何类型的计算,DateTimeZone 对象会为您完成 :-)

于 2012-08-22T13:07:02.273 回答
1

将此添加到页面顶部:

date_default_timezone_set('Europe/London');
于 2012-08-22T13:07:07.797 回答
1

使用 date_default_timezone_set 函数

date_default_timezone_set('Europe/London');
于 2012-08-22T13:07:21.423 回答
0
$tme = date('H:i : d F Y', time() + 60*5);

但您可能对DateTime 对象感兴趣

或使用更改时区

date_default_timezone_set('Europe/London');
于 2012-08-22T13:07:25.170 回答
0

使用DateTimeandDateTimeZone代替:

// U.S. timezone (EST)
$tme = new DateTime('now', new DateTimeZone('America/New_York'));
echo $tme->format('H:i : d F Y');

// U.K. timezone
$tme->setTimeZone(new DateTimeZone('Europe/London'));
echo $tme->format('H:i : d F Y');
于 2012-08-22T13:07:52.970 回答