new - obtener tiempo UTC en PHP
timezone utc php (10)
¿Cómo puedo obtener el sello de hora UTC / GMT +/- usando la función de fecha de PHP ()? Por ejemplo, si intento
date("Y-m-d H:i:s", time());
Voy a obtener 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 en función de los tiempos locales.
con la cadena GMT / UTC +/- 0400 o GMT / UTC +/- 1000 según los tiempos locales
Su format personalizado es simplemente O
falta para darle los desplazamientos de la zona horaria de la hora local.
Diferencia con la hora de Greenwich (GMT) en horas Ejemplo: +0200
date_default_timezone_set(''America/La_Paz'');
echo date(''Y-m-d H:i:s O'');
2018-01-12 12:10:11 -0400
Sin embargo, para maximizar la portabilidad / interoperabilidad, recomendaría usar el formato de fecha ISO8601 c
date_default_timezone_set(''America/La_Paz'');
echo date(''c'');
2018-01-12T12: 10: 11-04: 00
date_default_timezone_set(''Australia/Brisbane'');
echo date(''c'');
2018-01-13T02: 10: 11 + 10: 00
También puede usar gmdate
y la cadena de desplazamiento de la zona horaria siempre será +00:00
date_default_timezone_set(''America/La_Paz'');
echo gmdate(''c'');
2018-01-12T16: 10: 11 + 00: 00
date_default_timezone_set(''Australia/Brisbane'');
echo gmdate(''c'');
2018-01-12T16: 10: 11 + 00: 00
Además de llamar a gmdate
, también puedes poner este código antes del resto del código:
<?php
date_default_timezone_set("UTC");
?>
Eso hará que el resto de sus llamadas relacionadas con la fecha / hora utilicen la zona horaria GMT / UTC.
Como se respondió anteriormente aquí , desde PHP 5.2.0 puede usar la clase DateTime
y especificar la zona horaria UTC con una instancia de DateTimeZone
.
La documentación 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.
$date_utc = new /DateTime("now", new /DateTimeZone("UTC"));
echo $date_utc->format(/DateTime::RFC850); # Saturday, 18-Apr-15 03:23:46 UTC
Puede usar following para obtener la hora UTC:
date_default_timezone_set(''Asia/Calcutta'');
$current_date = date("Y/m/d g:i A");
$ist_date = DateTime::createFromFormat(
''"Y/m/d g:i A"'',
$current_date,
new DateTimeZone(''Asia/Calcutta'')
);
$utc_date = clone $ist_date;
$utc_date->setTimeZone(new DateTimeZone(''UTC''));
echo ''UTC: '' . $utc_date->format(''Y-m-d g:i A'');
Puede usar la función gmmktime sin argumentos para obtener la marca de tiempo UTC actual:
$time = gmmktime();
echo date("Y-m-d H:i:s", $time);
gmmktime solo funcionará si su hora del servidor usa UTC. Por ejemplo, mi servidor está configurado en US / Pacific. la función enumerada arriba echos atrás hora del Pacífico.
Un simple gmdate será suficiente
<?php
print gmdate("Y-m-d/TH:i:s/Z");
Usar gmdate
siempre devolverá una fecha GMT. La sintaxis es la misma que para la date
.
$time = time();
$check = $time+date("Z",$time);
echo strftime("%B %d, %Y @ %H:%M:%S UTC", $check);
/**
* Converts a local Unix timestamp to GMT
*
* @param int Unix timestamp
* @return int
*/
function local_to_gmt($time = '''')
{
if ($time === '''')
{
$time = time();
}
return mktime(
gmdate(''G'', $time),
gmdate(''i'', $time),
gmdate(''s'', $time),
gmdate(''n'', $time),
gmdate(''j'', $time),
gmdate(''Y'', $time)
);
}
date("Y-m-d H:i:s", time() - date("Z"))