PHP - Fecha y hora
Las fechas son una parte tan importante de la vida cotidiana que resulta fácil trabajar con ellas sin pensar. PHP también proporciona herramientas poderosas para la aritmética de fechas que facilitan la manipulación de fechas.
Obtener la marca de tiempo con la hora ()
PHP time()La función le brinda toda la información que necesita sobre la fecha y hora actuales. No requiere argumentos pero devuelve un número entero.
El número 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 época de UNIX y el número de segundos que han transcurrido desde entonces se denomina marca de tiempo.
<?php
print time();
?>
Esto producirá el siguiente resultado:
1480930103
Esto es algo difícil de entender. Pero PHP ofrece excelentes herramientas para convertir una marca de tiempo en una forma con la que los humanos se sientan cómodos.
Conversión de una marca de tiempo con getdate ()
La función getdate()opcionalmente acepta una marca de tiempo y devuelve una matriz asociativa que contiene información sobre la fecha. Si omite la marca de tiempo, funciona con la marca de tiempo actual devuelta por time ().
La siguiente tabla enumera los elementos contenidos en la matriz devuelta por getdate ().
No Señor | Clave y descripción | Ejemplo |
---|---|---|
1 | seconds Segundos pasados los minutos (0-59) |
20 |
2 | minutes Minutos después de la hora (0 - 59) |
29 |
3 | hours Horas del día (0-23) |
22 |
4 | mday Día del mes (1 - 31) |
11 |
5 | wday Día de la semana (0 - 6) |
4 |
6 | mon Mes del año (1-12) |
7 |
7 | year Año (4 dígitos) |
1997 |
8 | yday Día del año (0 - 365) |
19 |
9 | weekday Día de la semana |
jueves |
10 | month Mes del año |
enero |
11 | 0 Marca de tiempo |
948370048 |
Ahora tienes un control total sobre la fecha y la hora. Puede formatear esta fecha y hora en el formato que desee.
Ejemplo
Prueba el siguiente ejemplo
<?php
$date_array = getdate();
foreach ( $date_array as $key => $val ){
print "$key = $val<br />";
}
$formated_date = "Today's date: ";
$formated_date .= $date_array['mday'] . "/";
$formated_date .= $date_array['mon'] . "/";
$formated_date .= $date_array['year'];
print $formated_date;
?>
Esto producirá el siguiente resultado:
seconds = 10
minutes = 29
hours = 9
mday = 5
wday = 1
mon = 12
year = 2016
yday = 339
weekday = Monday
month = December
0 = 1480930150
Today's date: 5/12/2016
Conversión de una marca de tiempo con fecha ()
los date()La función 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(format,timestamp)
La fecha () acepta opcionalmente una marca de tiempo si se omite, entonces se usarán la fecha y hora actuales. Cualquier otro dato que incluya en la cadena de formato pasada a la fecha () se incluirá en el valor de retorno.
La siguiente tabla enumera los códigos que puede contener una cadena de formato:
No Señor | Formato y descripción | Ejemplo |
---|---|---|
1 | a 'am' o 'pm' en minúsculas |
pm |
2 | A 'AM' o 'PM' en mayúsculas |
PM |
3 | d Día del mes, un número con ceros a la izquierda |
20 |
4 | D Día de la semana (tres letras) |
Jue |
5 | F Nombre del mes |
enero |
6 | h Hora (formato de 12 horas - ceros iniciales) |
12 |
7 | H Hora (formato de 24 horas - ceros iniciales) |
22 |
8 | g Hora (formato de 12 horas, sin ceros a la izquierda) |
12 |
9 | G Hora (formato de 24 horas, sin ceros a la izquierda) |
22 |
10 | i Minutos (0 - 59) |
23 |
11 | j Día del mes (sin ceros a la izquierda |
20 |
12 | l (Lower 'L') Día de la semana |
jueves |
13 | L Año bisiesto ('1' para sí, '0' para no) |
1 |
14 | m Mes del año (número - ceros iniciales) |
1 |
15 | M Mes del año (tres letras) |
ene |
dieciséis | r La fecha con formato RFC 2822 |
Jueves, 21 de diciembre de 2000 16:01:07 +0200 |
17 | n Mes del año (número, sin ceros a la izquierda) |
2 |
18 | s Segundos de hora |
20 |
19 | U Sello de tiempo |
948372444 |
20 | y Año (dos dígitos) |
06 |
21 | Y Año (cuatro dígitos) |
2006 |
22 | z Día del año (0 - 365) |
206 |
23 | Z Desplazamiento en segundos de GMT |
+5 |
Ejemplo
Prueba el siguiente ejemplo
<?php
print date("m/d/y G.i:s<br>", time());
echo "<br>";
print "Today is ";
print date("j of F Y, \a\\t g.i a", time());
?>
Esto producirá el siguiente resultado:
12/05/16 9:29:47
Today is 5 2016f December 2016 at 9:29 am
Espero que comprenda bien 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.