from - PHP DateTime DST
strtotime formats php (1)
Busqué el manual de PHP y StackOverflow también, pero realmente no he encontrado una respuesta adecuada a mi pregunta. Mis fechas están almacenadas en UTC. Ahora si lo hago:
$date = new DateTime(''2012-03-16 14:00:00'', ''UTC'');
$date->setTimezone(''Europe/Budapest'');
¿DateTime :: setTimezone () configurará DST automáticamente? Entonces, si formateo la cadena, ¿dará salida a las 15:00:00 en horario de verano y a las 16:00:00 en invierno? ¿O tendré que configurar el horario de verano manualmente?
Pregunta relacionada, si quiero obtener una hora UTC independiente de DST (que pueda almacenar), ¿funcionará lo siguiente?
$date = new DateTime(''now'', ''UTC'');
$date->format(''Y-m-d H:i:s'');
O mejor usar simple gmdate(''Ymd H:i:s'')
?
Tu suposición es correcta.
Además, esto te habría llevado 10 segundos verificarlo.
Editar:
La sintaxis correcta es:
$date = new DateTime(''2012-03-16 14:00:00'', new DateTimeZone(''UTC''));
En cuanto a tu segunda pregunta. La zona horaria pasada en el constructor DateTime es la zona horaria ''de referencia''.
Aún debe llamar a -> setTimeZone (new DateTimeZone (''UTC'')) para formatearlo en la zona horaria UTC, a menos que la zona horaria predeterminada también esté configurada en UTC (date_default_timezone_set).
La próxima vez, intenta un poco más difícil de probar antes de preguntar.