¿Cómo puedo obtener la marca de tiempo UTC / GMT +/- usando la función date () de PHP? Por ejemplo, si intento
date("Y-m-d H:i:s", time());
Obtendré la marca de tiempo de Unix; pero necesito obtener la marca de tiempo UTC / GMT con la cadena GMT / UTC +/- 0400 o GMT / UTC +/- 1000 según los horarios locales.
Respuestas:
El uso
gmdate
siempre devolverá una fecha GMT. La sintaxis es la misma que paradate
.fuente
gmdate("U") == time()
.) Suena como un comportamiento potencialmente defectuoso. Verifique dos veces y presente un error con el proyecto PHP.time()
devuelve "número de segundos desde la época de Unix (1 de enero de 1970 00:00:00 GMT)". NotaGMT
. El hecho de que, de forma predeterminada, su sistema lo convierta en su zona horaria para mostrarlo, es una conveniencia para el usuario. Internamente, siempre es GMT.Un simple gmdate () será suficiente
fuente
Como se respondió anteriormente aquí , desde PHP 5.2.0 puede usar la
DateTime
clase y especificar la zona horaria UTC con una instancia deDateTimeZone
.La documentación de DateTime __construct () sugiere pasar "ahora" como primer parámetro al crear una instancia de DateTime y especificar una zona horaria para obtener la hora actual.
fuente
DateTime
? Al ejecutarlo yo mismo, parece funcionar bien sin ellos.namespace A
declaración en la parte superior, PHP asumiráDateTime
que se refiereA\DateTime
, lo cual es incorrecto. Agregar la barra invertida soluciona el problema. En mi opinión, es un buen hábito incluso si aún no usas espacios de nombres.fuente
fuente
Obtención de la fecha UTC
Obtención de la marca de tiempo UTC
El resultado no será diferente incluso si lo tiene
date_default_timezone_set
en su código.fuente
Además de llamar
gmdate
, también puede poner este código antes del resto del código:Eso hará que el resto de sus llamadas relacionadas con la fecha / hora usen la zona horaria GMT / UTC.
fuente
Puede usar la función gmmktime sin argumentos para obtener la marca de tiempo UTC actual:
gmmktime solo funcionará si la hora de su servidor usa UTC. Por ejemplo, mi servidor está configurado en EE.UU. / Pacífico. la función listada arriba hace eco a la hora del Pacífico.
fuente
Su formato personalizado solo falta
O
para darle las compensaciones de zona horaria con respecto a la hora local.Sin embargo, para maximizar la portabilidad / interoperabilidad, recomendaría usar el formato de fecha ISO8601
c
También puede usar
gmdate
y la cadena de desplazamiento de zona horaria siempre será+00:00
fuente
Puede usar lo siguiente para obtener la hora UTC:
fuente
fuente
A continuación, busque el código PHP para obtener la hora UTC (hora universal coordinada) actual
fuente