php获取美国/东部当前时间

时间:2010-12-16 00:34:21

标签: php

我想获得美国/东部时区的当前时间。我将如何实现这一目标。

我尝试过以下代码,但它显示的是我的系统时间。

<?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'行。

5 个答案:

答案 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']它应该没有问题