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.