Comment puis-je obtenir l'horodatage UTC / GMT +/- en utilisant la fonction date () de PHP? Par exemple, si j'essaye
date("Y-m-d H:i:s", time());
J'obtiendrai l'horodatage Unix; mais je dois obtenir l'horodatage UTC / GMT avec la chaîne GMT / UTC +/- 0400 ou GMT / UTC +/- 1000 en fonction des horaires locaux.
Réponses:
L'utilisation
gmdate
renverra toujours une date GMT. La syntaxe est la même que pourdate
.la source
gmdate("U") == time()
.) Sonne comme un comportement potentiellement bogué. Vérifiez et notez un bogue avec le projet PHP.time()
renvoie "le nombre de secondes depuis l'époque Unix (1er janvier 1970 00:00:00 GMT)". RemarqueGMT
. Le fait que, par défaut, votre système le convertisse en votre fuseau horaire pour l'affichage, est un avantage pour l'utilisateur. En interne, c'est toujours GMT.Un simple gmdate () suffira
la source
Comme précédemment répondu ici , depuis PHP 5.2.0, vous pouvez utiliser la
DateTime
classe et spécifier le fuseau horaire UTC avec une instance deDateTimeZone
.La documentation DateTime __construct () suggère de passer «maintenant» comme premier paramètre lors de la création d'une instance de DateTime et de spécifier un fuseau horaire pour obtenir l'heure actuelle.
la source
DateTime
? En l'exécutant moi-même, cela semble fonctionner très bien sans eux.namespace A
déclaration en haut, à laquelle PHP supposeraDateTime
faire référenceA\DateTime
, ce qui est faux. L'ajout de la barre oblique inverse résout le problème. C'est une bonne habitude à prendre même si vous n'utilisez pas encore d'espaces de noms, à mon avis.la source
la source
Obtention de la date UTC
Obtention de l'horodatage UTC
Le résultat ne sera pas différent même que vous avez
date_default_timezone_set
sur votre code.la source
Autre que d'appeler,
gmdate
vous pouvez également mettre ce code avant le reste du code:Cela rendra le reste de vos appels liés à la date / heure pour utiliser le fuseau horaire GMT / UTC.
la source
Vous pouvez utiliser la fonction gmmktime sans arguments pour obtenir l'horodatage UTC actuel:
gmmktime ne fonctionnera que si l'heure de votre serveur utilise UTC. Par exemple, mon serveur est défini sur US / Pacific. la fonction listée ci-dessus fait écho à l'heure du Pacifique.
la source
Votre format personnalisé est juste manquant
O
pour vous donner les décalages de fuseau horaire par rapport à l'heure locale.Cependant, pour une portabilité / interopérabilité maximisée, je recommanderais d'utiliser le format de date ISO8601
c
Vous pouvez également utiliser
gmdate
et la chaîne de décalage du fuseau horaire sera toujours+00:00
la source
Vous pouvez utiliser ce qui suit pour obtenir l'heure UTC:
la source
la source
Vous trouverez ci-dessous le code PHP pour obtenir l'heure UTC (temps universel coordonné) actuel
la source