Php получает текущее время US/Eastern

Я хочу получить текущее время в США/восточном часовом поясе. Как я могу это достичь.

Я пробовал следующий код, но он показывает мое системное время.

<?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;
?>

Я использую этот script со вспышкой, поэтому прокомментировал строку "print".

Ответ 1

<?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

Ответ 2

$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() будет влиять на целое script и его следует тщательно использовать

Ответ 3

http://www.php.net/manual/en/timezones.php

Похоже, что US/Eastern устарел. Попробуйте America/New_York

РЕДАКТИРОВАТЬ, вероятно, это не решит вашу проблему, но вы все равно должны это сделать. Быть устаревшим означает, что они могут удалить его в будущем.

Ответ 4

Самый простой способ - использовать gmmktime(), чтобы получить Unix timestamp для текущего GMT, а затем subtract 5 hours. Таким образом, вы получаете восточное время независимо от того, где находится сервер.

Ответ 5

Я просто использую

<?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'], и он не должен работать без проблем