Actualizado el miércoles, 8 mayo, 2024
La biblioteca incorporada de PHP tiene una amplia gama de funciones que ayudan a manejar y manipular la información de fecha y hora mediante programación. Los objetos de fecha y hora en PHP se pueden crear pasando una presentación de cadena de información de fecha / hora, o desde la hora actual del sistema.
PHP proporciona la clase DateTime que define una serie de métodos. En este capítulo, tendremos una visión detallada de los diversos métodos relacionados con la fecha y la hora disponibles en PHP.
Las características de fecha/hora en PHP implementan el calendario ISO 8601, que implementa las reglas actuales de los días bisiestos desde antes de que el calendario gregoriano estuviera en su lugar. La información de fecha y hora se almacena internamente como un número de 64 bits.
Obtener Time Stamp con time()
La función time() de PHP te da toda la información que necesitas sobre la fecha y hora actuales. No requiere argumentos, pero devuelve un número entero.
time():int
El entero devuelto por time() representa el número de segundos transcurridos desde la medianoche GMT del 1 de enero de 1970. Este momento se conoce como la época UNIX, y el número de segundos que han transcurrido desde entonces se conoce como Time Stamp.
<?php
print time();
?>
Producirá el siguiente resultado:
1699421347
Podemos convertir Time Stamp en una forma con la que los humanos se sientan cómodos.
Convertir Time Stamp con getdate()
La función getdate() acepta opcionalmente una marca de tiempo y devuelve una matriz asociativa que contiene información sobre la fecha. Si omite Time Stamp, funciona con la marca de tiempo actual devuelta por time().
En la tabla siguiente se enumeran los elementos contenidos en el array devuelta por getdate().
Sr.No | Key y Descipción | Ejemplo |
---|---|---|
1 | secondsSeconds past the minutes (0-59) | 20 |
2 | minutesMinutes past the hour (0 – 59) | 29 |
3 | hoursHours of the day (0 – 23) | 22 |
4 | mdayDay of the month (1 – 31) | 11 |
5 | wdayDay of the week (0 – 6) | 4 |
6 | monMonth of the year (1 – 12) | 7 |
7 | yearYear (4 digits) | 1997 |
8 | ydayDay of year ( 0 – 365 ) | 19 |
9 | weekdayDay of the week | Thursday |
10 | monthMonth of the year | January |
11 | 0Timestamp | 948370048 |
Ahora tienes control total sobre la fecha y la hora. Puede formatear esta fecha y hora en el formato que desee.
Ejemplo
Echa un vistazo al siguiente ejemplo:
<?php
$date_array = getdate();
foreach ( $date_array as $key => $val ){
print "$key = $val\n";
}
$formated_date = "Today's date: ";
$formated_date .= $date_array['mday'] . "-";
$formated_date .= $date_array['mon'] . "-";
$formated_date .= $date_array['year'];
print $formated_date;
?>
Producirá el siguiente resultado:
seconds = 0
minutes = 38
hours = 6
mday = 8
wday = 3
mon = 11
year = 2023
yday = 311
weekday = Wednesday
month = November
0 = 1699421880
Today's date: 8-11-2023
Convertir Time Stamp con date()
La función date() devuelve una cadena formateada que representa una fecha. Puede ejercer una enorme cantidad de control sobre el formato que devuelve date() con un argumento de cadena que debe pasarle.
date(string$format,?int$timestamp=null):string
Opcionalmente, date() acepta un Time Stamp, si se omite, se utilizará la fecha y hora actuales. Cualquier otro dato que incluyas en la cadena de formato pasada a date() se incluirá en el valor devuelto.
En la tabla siguiente se enumeran los códigos que puede contener una cadena de formato:
Sr.No | Formato y Descripción | Ejemplo |
---|---|---|
1 | a‘am’ or ‘pm’ lowercase | pm |
2 | A‘AM’ or ‘PM’ uppercase | PM |
3 | dDay of month, a number with leading zeroes | 20 |
4 | DDay of week (three letters) | Thu |
5 | FMonth name | January |
6 | hHour (12-hour format – leading zeroes) | 12 |
7 | HHour (24-hour format – leading zeroes) | 22 |
8 | gHour (12-hour format – no leading zeroes) | 12 |
9 | GHour (24-hour format – no leading zeroes) | 22 |
10 | iMinutes ( 0 – 59 ) | 23 |
11 | jDay of the month (no leading zeroes | 20 |
12 | l (Lower ‘L’)Day of the week | Thursday |
13 | LLeap year (‘1’ for yes, ‘0’ for no) | 1 |
14 | mMonth of year (number – leading zeroes) | 1 |
15 | MMonth of year (three letters) | Jan |
16 | rThe RFC 2822 formatted date | Thu, 21 Dec 2000 16:01:07 +0200 |
17 | nMonth of year (number – no leading zeroes) | 2 |
18 | sSeconds of hour | 20 |
19 | UTime stamp | 948372444 |
20 | yYear (two digits) | 06 |
21 | YYear (four digits) | 2006 |
22 | zDay of year (0 – 365) | 206 |
23 | ZOffset in seconds from GMT | +5 |
Ejemplo
Echa un vistazo al siguiente ejemplo:
<?php
print date("m/d/y G.i:s \n", time()) . PHP_EOL;
print "Today is ";
print date("j of F Y, \a\\t g.i a", time());
?>
Producirá el siguiente resultado:
11/08/23 11.23:08
Today is 8 2023f November 2023, at 11.23 am
Espero que tenga una buena comprensión de cómo formatear la fecha y la hora de acuerdo con sus requisitos. Para su referencia, se proporciona una lista completa de todas las funciones de fecha y hora en Funciones de fecha y hora de PHP.