我想获得美国/东部时区的当前时间。我将如何实现这一目标。
我尝试过以下代码,但它显示的是我的系统时间。
<?php
date_default_timezone_set('US/Eastern');
$currenttime = date('h:i:s:u');
list($hrs,$mins,$secs,$msecs) = split(':',$currenttime);
//print "&time2=".$secs."&time1=".$mins."&time0=".$hrs;
?>
我在flash中使用这个脚本,因此注释掉'print'行。
答案 0 :(得分:22)
<?php
echo date_default_timezone_get();
$currenttime = date('h:i:s:u');
list($hrs,$mins,$secs,$msecs) = split(':',$currenttime);
echo " => $hrs:$mins:$secs\n";
date_default_timezone_set('US/Eastern');
echo date_default_timezone_get();
$currenttime = date('h:i:s:u');
list($hrs,$mins,$secs,$msecs) = split(':',$currenttime);
echo " => $hrs:$mins:$secs\n";
date_default_timezone_set('America/New_York');
echo date_default_timezone_get();
$currenttime = date('h:i:s:u');
list($hrs,$mins,$secs,$msecs) = split(':',$currenttime);
echo " => $hrs:$mins:$secs\n";
?>
似乎在这里工作(在柏林):
Europe/Berlin => 01:42:42
US/Eastern => 07:45:18
America/New_York => 07:45:18
答案 1 :(得分:6)
http://www.php.net/manual/en/timezones.php
看起来不推荐使用US/Eastern
。试试America/New_York
编辑这可能无法解决您的问题,但无论如何都应该这样做。被弃用意味着他们将来可以将其删除。
答案 2 :(得分:6)
$amNY = new DateTime('America/New_York');
$estTime = $amNY->format('h:i:s:u');
或者如果您使用的是php 5.4及以上
estTime = (new DateTime('America/New_York'))->format('h:i:s:u');
date_default_timezone_set()
会影响整个脚本,应谨慎使用
答案 3 :(得分:2)
最简单的方法可能是使用gmmktime()
获取当前GMT的Unix timestamp
,然后subtract 5 hours
获取当前GMT。这样,无论服务器在哪里,您都可以获得东部时间。
答案 4 :(得分:1)
我只是用
<?php
Date_default_timezone('est');
$lv=date('l, F jS, Y, g:I:s A T,$ir['laston']);
?>
<b>last visit</b> <em>$lv.</em>
似乎在我正在努力的游戏中为我完美地工作。请注意,如果你想使用它只是删除$ ir ['laston']它应该没有问题