No tienes acceso a esta clase

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

Funciones para fechas

13/22
Recursos

Aportes 9

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.

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!