2010-12-16 117 views
11

Je veux connaître l'heure actuelle du fuseau horaire des États-Unis et de l'Est. Comment pourrais-je y parvenir?php obtenir l'heure actuelle des États-Unis et de l'Est

J'ai essayé le code suivant mais il affiche l'heure de mon système. J'utilise ce script avec Flash pour commenter la ligne 'print'.

+1

Pouvez-vous essayer d'appeler 'echo date_default_timezone_get()', et voir ce que ça fait écho? – Yahel

+0

Veuillez noter que 'US/Eastern', bien que désapprouvé, suit les règles 'Daylight Saving Time'. Il est GMT-04: 00 ou GMT-05: 00 selon la période de l'année. Si vous voulez spécifiquement EDT (Eastern Daylight Time, été) ou EST (Eastern Standard Time, hiver), vous devrez spécifier l'acronyme à trois caractères ou le décalage directement. –

Répondre

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

?> 

Semble travailler ici (à Berlin):

Europe/Berlin => 01:42:42 
US/Eastern => 07:45:18 
America/New_York => 07:45:18 
+0

J'ai eu une erreur qui créait la confusion, j'ai dû utiliser 'H' au lieu de 'h' dans le format de date. Désolé guyz ... et merci aussi ... surtout Le MYYN dont la suggestion date_default_timezone_get() m'a aidé ... – booota

+0

Déconseillé: Function split() –

4

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

On dirait que le US/Eastern est dépréciée. Essayez America/New_York

EDIT cela ne résoudra probablement pas votre problème, mais vous devriez le faire quand même Être déprécié signifie qu'ils pourraient l'enlever à l'avenir.

2

Le moyen le plus simple est probablement d'utiliser gmmktime() pour obtenir le Unix timestamp pour le GMT actuel, puis subtract 5 hours à partir de celui-ci. De cette façon, vous obtenez l'heure de l'Est, peu importe où le serveur se trouve.

+1

Et qu'en est-il du moment où Eastern Standard Time passe à l'heure avancée de l'Est (-4 GMT)? Ce n'est pas vraiment une solution durable. – Yahel

+0

Ce n'est pas possible. – beginner

4
$amNY = new DateTime('America/New_York'); 
$estTime = $amNY->format('h:i:s:u'); 

ou si vous utilisez php 5.4 et au-dessus

estTime = (new DateTime('America/New_York'))->format('h:i:s:u'); 

date_default_timezone_set() affectera tout le script et doit être utilisé avec précaution

0

je viens d'utiliser

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

Semble fonctionner parfaitement pour moi sur mon jeu sur lequel je travaille. Rappelez-vous si vous voulez l'utiliser il suffit de supprimer le $ ir ['laston'] et cela devrait fonctionner sans problème