Herramientas de usuario

Herramientas del sitio


informatica:programacion:php:snippets:fechas

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
informatica:programacion:php:snippets:fechas [2025/06/18 15:44] – [Semanas] tempwininformatica:programacion:php:snippets:fechas [2025/06/18 15:57] (actual) – [UTC a otra zona horaria] tempwin
Línea 80: Línea 80:
   * [[https://stackoverflow.com/questions/1659551/how-to-get-the-first-day-of-a-given-week-number-in-php-multi-platform|How to get the first day of a given week number in PHP (multi-platform)?]]   * [[https://stackoverflow.com/questions/1659551/how-to-get-the-first-day-of-a-given-week-number-in-php-multi-platform|How to get the first day of a given week number in PHP (multi-platform)?]]
  
-==== UTC a otra zona horaria ==== 
- 
-Si tenemos un string con una fecha en UTC, por ejemplo: 
- 
-<code> 
-2025-08-31 19:57:25.000000 UTC 
-</code> 
- 
-Para pasarla a la zona horaria de España: 
- 
-<code php> 
-$fechaString = "2025-08-31 19:57:25.000000 UTC"; 
- 
-$fechaUTC = new DateTime($fechaString, new DateTimeZone('UTC')); 
- 
-// Convertir a zona horaria de España 
-$fechaES= clone $fechaUTC ; 
- 
-// Pasamos a la zona horaria de España: 
-$fechaES->setTimezone(new DateTimeZone('Europe/Madrid')); 
-</code> 
  
-PHP maneja automáticamente el cambio horario de verano/invierno. 
 ===== Intervalos ===== ===== Intervalos =====
  
Línea 273: Línea 251:
 $timeFormat = sprintf('%02d:%02d:%02d', $horas, $minutos, $segundos); $timeFormat = sprintf('%02d:%02d:%02d', $horas, $minutos, $segundos);
 </code> </code>
 +
 +==== UTC a otra zona horaria ====
 +
 +Si tenemos un string con una fecha en UTC, por ejemplo:
 +
 +<code>
 +2025-08-31 19:57:25.000000 UTC
 +</code>
 +
 +Para pasarla a la zona horaria de España:
 +
 +<code php>
 +$fechaString = "2025-08-31 19:57:25.000000 UTC";
 +
 +// Creamos un objeto DateTime indicando explícitamente que la cadena de fecha está en UTC
 +$fechaUTC = new DateTime($fechaString, new DateTimeZone('UTC'));
 +
 +$fechaES = clone $fechaUTC;
 +
 +// Pasamos a la zona horaria de España:
 +$fechaES->setTimezone(new DateTimeZone('Europe/Madrid'));
 +</code>
 +
 +PHP maneja automáticamente el cambio horario de verano/invierno (último domingo de marzo,+2h CEST, último domingo de octubre, +1h CET).
 +
 +<WRAP center round info 60%>
 +El horario de verano en España se cambia el último domingo de marzo y serían 2 horas sobre UTC (UTC+2). En el de invierno, que se cambia el último domingo de octubre, sería 1 hora sobre UTC (UTC+1). Al horario de verano también se le llama **DST**, de //Daylight Saving Time//, que sería algo como "Horario de ahorro de luz diurna".
 +</WRAP>
 +
 ===== Recursos ===== ===== Recursos =====
  
   * [[https://www.webfx.com/blog/web-design/php-dateinterval-class/|An Introduction to the PHP DateInterval Class]]   * [[https://www.webfx.com/blog/web-design/php-dateinterval-class/|An Introduction to the PHP DateInterval Class]]
   * [[https://www.php.net/manual/es/datetime.formats.relative.php|Formatos de fecha relativos]]   * [[https://www.php.net/manual/es/datetime.formats.relative.php|Formatos de fecha relativos]]
informatica/programacion/php/snippets/fechas.1750254295.txt.gz · Última modificación: por tempwin