No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Funciones útiles para trabajar con fechas en PHP

13/22
Recursos

¿Cómo configurar la zona horaria en PHP?

Trabajar con fechas en PHP es esencial, especialmente para aplicaciones que deben manejar diferentes zonas horarias. Vamos a ver cómo definir y obtener las zonas horarias correctamente en PHP.

  • Configurar la zona horaria: En PHP, puedes establecer una zona horaria específica usando la función date_default_timezone_set. Por ejemplo:

    date_default_timezone_set('America/Mexico_City');
    

    Esto configura la aplicación para usar la zona horaria de Ciudad de México. Puedes consultar la documentación de PHP para ver todas las zonas horarias disponibles.

  • Obtener la zona horaria: Para saber qué zona horaria está configurada, puedes utilizar date_default_timezone_get, que te devolverá la zona horaria actual configurada.

¿Cómo obtener y manipular fechas actuales en PHP?

Las fechas son un elemento crucial en el desarrollo web, y PHP ofrece varias formas de manipularlas.

  • Obtener la fecha actual: Con la función date, puedes obtener y formatear la fecha actual en PHP. Por ejemplo:

    $now = date('Y-m-d H:i:s');
    echo $now; // Muestra algo como: 2022-04-19 10:22:10
    

    Puedes personalizar el formato utilizando diversas letras que especifican porciones de la fecha (año, mes, día, etc.).

  • Usar DateTime para mayor control: Si necesitas manipular una fecha, DateTime te devuelve un objeto que ofrece más control que un simple string:

    $now = new DateTime();
    echo $now->format('Y-m-d H:i:s');
    

    DateTime permite manipular la fecha de diferentes maneras, como sumar o restar días, lo cual es extremadamente útil para cálculos más complejos.

¿Cómo convertir descripciones de fechas a formatos Unix?

PHP también te permite convertir fechas escritas de forma textual en inglés a un formato Unix, algo muy útil para cálculos temporales.

  • Función strtotime: Esta función convierte una descripción textual de fecha y hora en inglés a una fecha en formato Unix, lo que representa la cantidad de segundos transcurridos desde el 1 de enero de 1970.

    $unixTime = strtotime('next Monday');
    

    Esto te devuelve los segundos transcurridos hasta el próximo lunes. Las descripciones pueden ser bastante flexibles e incluir expresiones como "next week" o "last Wednesday".

  • Uso combinado de strtotime y date: Puedes usar estas dos funciones juntas para obtener fechas en un formato legible:

    $unixTime = strtotime('next Monday');
    echo date('Y-m-d', $unixTime); // Muestra la fecha del próximo lunes
    

    Esta combinación te permite calcular fechas futuras y pasadas de manera legible y precisa.

¿Qué son las fechas inmutables?

Las fechas inmutables son cruciales cuando necesitas asegurarte de que una fecha no cambie durante su manipulación.

  • Clases DateTimeImmutable: Esta clase se comporta como DateTime, pero no te permite modificar el objeto una vez que ha sido creado. Esto es útil para mantener la consistencia en fechas que no deben alterarse, ayudando a prevenir errores lógicos en el código.

    $immutableDate = new DateTimeImmutable('2022-04-19');
    

Explorando estas funciones y conceptos, puedes dominar la manipulación de fechas en PHP, asegurándote de que tus aplicaciones gestionen la fecha y el tiempo de manera precisa y eficiente. Así que adelante, sigue explorando y practicando estas técnicas para enriquecer tus habilidades de desarrollo.

Aportes 11

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

La característica curiosa de DateTimeImmutable es que a diferencia de DateTime no se modifica a sí misma sino que nos retorna un nuevo objeto. Por ejemplo si usamos add con DateTime esta modificará la instancia, por el contrario con DateTimeImmutableno se modifica sino que nos da un nuevo objeto para trabajar dejandonos la fecha original

Codigo de la clase:

<?php

//Establecer la zona horaria
date_default_timezone_set("America/Argentina/Buenos_Aires");

//Obtener la fecha actual
 $now = date("Y-m-d H:i:s");


//strtotime
//echo strtotime($now);
//echo strtotime("17 april 2020");
//echo strtotime("+1 day");
//echo strtotime("next Monday");
//echo strtotime("last Wednesday");

/* $unix_time_last_wednesday = strtotime("last Wednesday");
echo date("Y-m-d H:i:s", $unix_time_last_wednesday); */

//Fechas inmutables
//$date_inmutable = new DateTimeImmutable();


?>

Muy buena clase, la verdad ahora se trabajar mucho mejor con las fechas en php.

vayah. Yo No me habia Notado que php era un Lenguaje de tan Alto Nivel, Yo personalmente me gustan los >Lenguajes cercanos @CPU como C/C++ , pero bueno , como sea, Este Lenguaje tiene Muy Buenos reviews para Desarrollo BackEnd . por tanto Yo seguire con mis camino por aqui por los dias aVenir .
Excelente clase, no tenía ni idea de la gran cantidad de funciones para fecha que ofrece PHP, lo que lo hace mucho más sencillo.
Les dejo aqui la version POO. ```js format("d-M-Y h:i a"); echo "\n"; echo strtotime($now->format("Y-m-d H:i:s")); ```
```js $unix_time = strtotime('first day of next month'); $fechaIngles = date('Y-m-d H:i:s', $unix_time); $date = new DateTime($fechaIngles); $formatter = new IntlDateFormatter( 'es_ES', IntlDateFormatter::FULL, IntlDateFormatter::NONE, 'America/Mexico_City', IntlDateFormatter::GREGORIAN ); $fecha = $formatter->format($date); echo "

Fecha en Español: " . $fecha . "

"; ```$unix\_time = strtotime('first day of next month');$fechaIngles = date('Y-m-d H:i:s', $unix\_time);$date = new DateTime($fechaIngles);$formatter = new IntlDateFormatter(    'es\_ES',    IntlDateFormatter::FULL,    IntlDateFormatter::NONE,    'America/Mexico\_City',    IntlDateFormatter::GREGORIAN);$fecha = $formatter->format($date);echo "\

Fecha en Español: " . $fecha . "\

";

Excelente clase, cada vez debemos de pensar más en programación orientada a objetos e iniciar cualquier proyecto que tengamos, utilizando este paradigma.

En PHP, trabajar con fechas es una tarea común y el lenguaje proporciona varias funciones y clases para manejar fechas y horas de manera efectiva. Tu ejemplo muestra algunas de estas funciones y cómo se utilizan: \*\*1. Establecer la Zona Horaria:\*\* ```php date\_default\_timezone\_set("America/Guatemala"); ``` \- `date\_default\_timezone\_set()` establece la zona horaria predeterminada usada por todas las funciones de fecha/hora en un script. En este caso, estás estableciendo la zona horaria a "America/Guatemala". Es importante establecer esto en tus scripts de PHP para asegurarte de que las operaciones de fecha y hora se realicen en el contexto de la zona horaria correcta. \*\*2. Obtener la Fecha Actual:\*\* ```php $now = date('Y-m-d H:i:s'); ``` \- `date()` es una función que formatea una fecha/hora local. Aquí, obtienes la fecha y hora actuales en el formato "Año-Mes-Día Hora:Minuto:Segundo". \*\*Alternativamente con `date\_create()`:\*\* ```php /\*\* $now = date\_create(); \*/ ``` \- `date\_create()` es un alias de la función `DateTime::\_\_construct()` y crea un objeto `DateTime`. Si se llama sin argumentos, como en tu ejemplo, crea un objeto `DateTime` con la fecha y hora actuales. \*\*3. Uso de `strtotime()`:\*\* ```php $unix\_time = strtotime("Next Monday"); echo date("Y-m-d H:i:s", $unix\_time); ``` \- `strtotime()` es una función muy útil en PHP que convierte una descripción de fecha/hora en inglés en una marca de tiempo Unix. En este caso, convierte "Next Monday" (el próximo lunes) en una marca de tiempo Unix. Luego, usas `date()` para formatear y mostrar esta fecha. \*\*4. Trabajando con Fechas Inmutables:\*\* ```php $date\_inmutable = new DateTimeImmutable(); ``` \- `DateTimeImmutable` es similar a `DateTime`, pero con una diferencia importante: mientras que los métodos de `DateTime` modifican el objeto mismo, los métodos de `DateTimeImmutable` devuelven un nuevo objeto con la modificación. Esto es útil en situaciones donde necesitas asegurarte de que el objeto original de fecha/hora no se modifique accidentalmente. En resumen, tu ejemplo muestra diferentes formas de trabajar con fechas y horas en PHP, incluyendo establecer la zona horaria, obtener la fecha y hora actuales, convertir una descripción de fecha en una marca de tiempo Unix y trabajar con objetos de fecha inmutables. Estas son herramientas poderosas para cualquier desarrollador de PHP que necesite manejar fechas y horas en sus aplicaciones.

Por ejemplo, para convertir la fecha “2023-04-19” a una marca de tiempo Unix, se puede usar la función strtotime() de la siguiente manera:

$fecha = "2023-04-19";
$marca_tiempo = strtotime($fecha);
echo $marca_tiempo; // Retorna el número de segundos desde el 1 de enero de 1970 a las 00:00:00 UTC correspondiente a la fecha "2023-04-19"

También es posible usar strtotime() para sumar o restar días, semanas, meses o años a una fecha determinada. Por ejemplo, para sumar 7 días a la fecha actual, se puede hacer lo siguiente:

$fecha_actual = time();
$nueva_fecha = strtotime('+7 days', $fecha_actual);
echo date('Y-m-d', $nueva_fecha); // Retorna la fecha correspondiente a la fecha actual más 7 días en formato "año-mes-día"

chingón!