<?php
/**
* Ejemplo del uso del datetime y datetimezone para obtener la fecha de cualquier
* parte del mundo
*/
# Mostramos la fecha de nuestro servidor
echo "Fecha Actual: ".date("Y/m/d H:i:s");
# Mostramos la fecha en UTC
echo "Fecha UTC: ".gmdate("Y/m/d H:i:s");
echo "<hr>";
# Mostramos la diferencia en segundos de Europe/Madrid en referencia al UTC
# y mostramos la fecha de la zona horaria Europe/Madrid
$timezone="Europe/Madrid";
$dt=new datetime("now",new datetimezone($timezone));
echo "Zona horaria: ".$dt->getTimezone()->getName();
echo "Diferencia horaria con UTC (segundos): ".$dt->getOffset();
echo "Fecha de la Zona horaria: ".gmdate("Y/m/d H:i:s",(time()+$dt->getOffset()));
echo "<hr>";
# Mostramos la diferencia en segundos de Europe/Madrid en referencia al UTC
# en una fecha dada
$dateTimeUTC="2001-01-01 12:00:00";
$dt=new datetime($dateTimeUTC,new datetimezone($timezone));
echo "Zona horaria: ".$dt->getTimezone()->getName();
echo "Diferencia horaria con UTC (segundos): ".$dt->getOffset();
echo "Fecha de la Zona horaria: ".date("Y/m/d H:i:s",(strtotime($dateTimeUTC)+$dt->getOffset()));
# Mostramos el listado de todas las zonas horarias con su hora actual
echo "<hr>";
echo "<p>Listado de las zonas horarias</p>";
echo "<div style='clear:both;float:left;width:200px;'>ZonaHoraria</div>";
echo "<div style='float:left;width:70px;'>Dif. UTC</div>";
echo "<div style='float:left;width:200px;text-align:center;'>Hora Actual</div>";
foreach(DateTimeZone::listIdentifiers() as $tz)
{
echo "<div style='clear:both;float:left;width:200px;'>".$tz."</div>";
$dt=new datetime("now",new datetimezone($tz));
echo "<div style='float:left;width:70px;text-align:right;'>".$dt->getOffset()."</div>";
echo "<div style='float:left;width:200px;text-align:center;'>".gmdate("Y/m/d H:i:s",(time()+$dt->getOffset()))."</div>";
}
?>
Comentarios sobre la versión: Versión 1 (2)
tengo este codigo pero no me aparece am o pm y no se como guardar alguien me puede ayudar
echo "Fecha UTC: ".gmdate("Y/m/d H:i:s");
Hoy bicheando por la red me he topado con esta página y la verdad agradecer a Xavi por el código, me ayudó mucho, era lo que buscaba.
Y bueno, respondiendo a la pregunta del amigo Leo (no sé si ya te valdrá pero bueno), no sé a que te refieres con "guardar" porque si no me equivoco, no se puede a menos que lo hagas en una variable, sino tendrás que usar base de datos. Ej:
$fecha_guardada = "Fecha UTC: ".gmdate("Y/m/d H:i:s");
Y éso ya la manejas como quieras:
if ($fecha_guardada == "2016/01/01 00:00:00") echo "Feliz año 2016";
Para poner AM ó PM te lo dá el "A", sería así:
"Fecha UTC: ".gmdate("Y/m/d H:i:s a");
Más datos sobre el formato de la fecha:
http://php.net/manual/es/function.date.php
Saludos.