Un tip rápido y sencillo sobre el manejo de fechas en PHP.
El manejo de fechas en PHP es algo que siempre utilizaremos en nuestros trabajos del dia a dia, como por ejemplo obtener la fecha del día, obtener la ultima fecha del mes o hacer operaciones aritmeticas.
Fecha de Hoy
Para obtener la fecha de Hoy podemos usar la funcion date(), la cual arroja la fecha actual y a la vez formatear la salida en pantalla.
Asi por ejemplo si quisieramos la fecha de hoy en formato 2014-04-07, diriamos date("Y-m-d);
Este es el cuadro donde pueden encontrar como definir el formato.
Carácter de format | Descripción | Ejemplo de valores devueltos |
---|---|---|
Día | --- | --- |
d | Día del mes, 2 dígitos con ceros iniciales | 01 a 31 |
D | Una representación textual de un día, tres letras | Mon hasta Sun |
j | Día del mes sin ceros iniciales | 1 a 31 |
l ('L' minúscula) | Una representación textual completa del día de la semana | Sunday hasta Saturday |
N | Representación numérica ISO-8601 del día de la semana (añadido en PHP 5.1.0) | 1 (para lunes) hasta 7 (para domingo) |
S | Sufijo ordinal inglés para el día del mes, 2 caracteres | st, nd, rd o th. Funciona bien con j |
w | Representación numérica del día de la semana | 0 (para domingo) hasta 6 (para sábado) |
z | El día del año (comenzando por 0) | 0 hasta 365 |
Semana | --- | --- |
W | Número de la semana del año ISO-8601, las semanas comienzan en lunes (añadido en PHP 4.1.0) | Ejemplo: 42 (la 42ª semana del año) |
Mes | --- | --- |
F | Una representación textual completa de un mes, como January o March | January hasta December |
m | Representación numérica de una mes, con ceros iniciales | 01 hasta 12 |
M | Una representación textual corta de un mes, tres letras | Jan hasta Dec |
n | Representación numérica de un mes, sin ceros iniciales | 1 hasta 12 |
t | Número de días del mes dado | 28 hasta 31 |
Año | --- | --- |
L | Si es un año bisiesto | 1 si es bisiesto, 0 si no. |
o | Número de año ISO-8601. Esto tiene el mismo valor que Y, excepto que si el número de la semana ISO (W) pertenece al año anterior o siguiente, se usa ese año en su lugar. (añadido en PHP 5.1.0) | Ejemplos: 1999 o 2003 |
Y | Una representación numérica completa de un año, 4 dígitos | Ejemplos: 1999 o 2003 |
y | Una representación de dos dígitos de un año | Ejemplos: 99 o 03 |
Hora | --- | --- |
a | Ante meridiem y Post meridiem en minúsculas | am o pm |
A | Ante meridiem y Post meridiem en mayúsculas | AM o PM |
B | Hora Internet | 000 hasta 999 |
g | Formato de 12 horas de una hora sin ceros iniciales | 1 hasta 12 |
G | Formato de 24 horas de una hora sin ceros iniciales | 0 hasta 23 |
h | Formato de 12 horas de una hora con ceros iniciales | 01 hasta 12 |
H | Formato de 24 horas de una hora con ceros iniciales | 00 hasta 23 |
i | Minutos, con ceros iniciales | 00 hasta 59 |
s | Segundos, con ceros iniciales | 00 hasta 59 |
u | Microsegundos (añadido en PHP 5.2.2). Observe que date() siempre generará 000000 ya que toma un parámetro de tipo integer, mientras que DateTime::format() admite microsegundos. | Ejemplo: 654321 |
Zona Horaria | --- | --- |
e | Identificador de zona horaria (añadido en PHP 5.1.0) | Ejemplos: UTC, GMT, Atlantic/Azores |
I (i mayúscula) | Si la fecha está en horario de verano o no | 1 si está en horario de verano, 0 si no. |
O | Diferencia de la hora de Greenwich (GMT) en horas | Ejemplo: +0200 |
P | Diferencia con la hora de Greenwich (GMT) con dos puntos entre horas y minutos (añadido en PHP 5.1.3) | Ejemplo: +02:00 |
T | Abreviatura de la zona horaria | Ejemplos: EST, MDT ... |
Z | Índice de la zona horaria en segundos. El índice para zonas horarias al oeste de UTC siempre es negativo, y para aquellas al este de UTC es siempre positivo. | -43200 hasta 50400 |
Fecha/Hora Completa | --- | --- |
c | Fecha ISO 8601 (añadido en PHP 5) | 2004-02-12T15:19:21+00:00 |
r | Fecha con formato » RFC 2822 | Ejemplo: Thu, 21 Dec 2000 16:01:07 +0200 |
U | Segundos desde la Época Unix (1 de Enero del 1970 00:00:00 GMT) | Vea también time() |
Operaciones y Manejo de Fechas en PHP
Para operar con las fechas en PHP, tenemos la clase DateTime.
Uno de los mejores beneficios de esta clase es que instanciar una fecha en base a una cadenas es bastante sencillo.
Por ejemplo si quiero una variable con la fecha 2013-12-24 es $ayer=DateTime('2013-12-24'), si no se pasa un parámetro se obtiene la fecha actual.
Fecha de ayer
$hoy=new DateTime(); $ayer=$hoy->sub(new DateInterval("P1D"));
Obtener el ultimo dia del mes
$d=$hoy->format('d'); $ultimo_dia=$hoy->add(new DateInterval('P1M')); $ultimo_dia=$ultimo_dia->sub(new DateInterval('P'.$d.'D')); echo "Ultimo dia :". $ultimo_dia->format('d')."
";
Este es solo un pequeño tip, del manejo de fechas en PHP, se pueden hacer infinidad de cosas y casos de uso.
Espero les ayude.
No hay comentarios:
Publicar un comentario