Dans PHP, comment puis-je obtenir l'heure actuelle, en UTC, sans savoir la connaissance du codage dur de l'endroit où mon fournisseur d'hébergement est?
Par exemple, j'ai essayé ce qui suit: P>
time() + strtotime('January 1, 2000')-strtotime('January 1, 2000 UTC')
4 Réponses :
Cela semble fonctionner pour moi. Bien sûr, vous devrez le tester sur PHP 4, car tous mes serveurs ont PHP 5, mais le manuel affirme que cela devrait fonctionner pour PHP 4.
$t = time(); $x = $t+date("Z",$t); echo strftime("%B %d, %Y @ %H:%M:%S UTC", $x);
Beaucoup mieux puis en utilisant la date ("T") code>. Vaut bien A +1.
Merci et je vous avais donné un +1 pour le commentaire ci-dessus.
Je plaisais à travers le manuel PHP et je suis rentré à travers Gmdate. Faire, quelque chose comme ça: Echo Gmdate ("H: I: S"). "UTC"; devrait fonctionner aussi bien.
$time = new DateTime('now', new DateTimeZone('UTC')); echo $time->format('F j, Y H:i:s');
Merci pour votre réponse. Bien que cela ne fonctionne pas pour PHP 4.4.9, cela fonctionne bien sur l'autre PHP 5.2.
Désolé, apparemment ma compréhension de lecture était désactivée lorsque j'ai lu votre question. Heureux d'avoir aidé quand même.
mais était néanmoins précieux pour les autres personnes
$utcTtime = gmmktime(); $unixTimestamp = time(); gmmktime: Get Unix timestamp for a GMT date
Est-ce que cela fonctionne pour PHP 4.4.9?
$time = strtotime('January 1, 2000 UTC'); if($time){ echo gmdate('Y-m-d H:i:s', $time); }
Juste pour vérifier, sont les fournisseurs d'hébergement dans le même fuseau horaire que vous êtes? Vous pouvez essayer de vérifier la sortie de la date ("T") à voir.
@TOM: Cela fonctionnerait si l'OP peut assumer son fournisseur dans une certaine région. Le problème avec la date
("T") code> est-ce par exemple "Est" pourrait par la North American Est ou l'Australian Est.
Je pêchais juste pour des informations. Consultez ma réponse ci-dessous pour une solution qui semblerait fonctionner dans tous les cas. Votre point sur le fuseau horaire Abrev. est bien pris et quelque chose que je n'ai jamais eu à traiter car tous mes serveurs sont à l'US