Vous êtes sur la page 1sur 10

GUIA PHP FECHAS

FECHA
PARAMETROS DE FECHA Y TIEMPO
date Dar formato a la fecha/hora local
Descripcin
string date ( string $format [, int $timestamp = time() ] )
Devuelve una cadena formateada segn el formato dado usando el
parmetro de tipo integer timestamp dado o el momento actual si no se da
una marca de tiempo. En otras palabras, timestamp es opcional y por
defecto es el valor de time().

Parmetros
format
El formato de la fecha de salida tipo string. Vea las opciones de formato ms
abajo. Tambin hay varias constantes de fecha predefinidas que pueden
usarse en su lugar, as por ejemplo DATE_RSS contiene la cadena de
formato 'D, d M Y H:i:s'.

Los siguientes caracteres estn reconocidos en el parmetro de cadena format


Carcter
Descripcin
Ejemplo de valores devueltos
deformat
Da
----d
Da del mes, 2 dgitos con ceros
01 a 31
iniciales
D
Una representacin textual de un da, Mon hasta Sun
tres letras
j
Da del mes sin ceros iniciales
1 a 31
l ('L'
Una representacin textual completa Sunday hastaSaturday
minscul del da de la semana
a)
N
Representacin numrica ISO-8601
1 (para lunes) hasta 7 (para
del da de la semana (aadido en PHP domingo)
5.1.0)
S
Sufijo ordinal ingls para el da del
st, nd, rd o th. Funciona bien
mes, 2 caracteres
con j
w
Representacin numrica del da de la 0 (para domingo)
semana
hasta6 (para sbado)
z
El da del ao (comenzando por 0)
0 hasta 365
Semana ----W
Nmero de la semana del ao ISOEjemplo: 42 (la 42 semana
8601, las semanas comienzan en
del ao)
lunes (aadido en PHP 4.1.0)
Mes
----F
Una representacin textual completa January hastaDecember
de un mes, como January o March
m
Representacin numrica de una mes, 01 hasta 12

GUIA PHP FECHAS

Los siguientes caracteres estn reconocidos en el parmetro de cadena format


Carcter
Descripcin
Ejemplo de valores devueltos
deformat
con ceros iniciales
M
Una representacin textual corta de Jan hasta Dec
un mes, tres letras
n
Representacin numrica de un mes, 1 hasta 12
sin ceros iniciales
t
Nmero de das del mes dado
28 hasta 31
Ao
----L
Si es un ao bisiesto
1 si es bisiesto, 0si no.
o
Nmero de ao ISO-8601. Esto tiene Ejemplos: 1999 o2003
el mismo valor que Y, excepto que si
el nmero de la semana ISO (W)
pertenece al ao anterior o siguiente,
se usa ese ao en su lugar. (aadido
en PHP 5.1.0)
Y
Una representacin numrica
Ejemplos: 1999 o2003
completa de un ao, 4 dgitos
y
Una representacin de dos dgitos de Ejemplos: 99 o03
un ao
Hora
----a
Ante meridiem y Post meridiem en
am o pm
minsculas
A
Ante meridiem y Post meridiem en
AM o PM
maysculas
B
Hora Internet
000 hasta 999
g
Formato de 12 horas de una hora sin 1 hasta 12
ceros iniciales
G
Formato de 24 horas de una hora sin 0 hasta 23
ceros iniciales
h
Formato de 12 horas de una hora con 01 hasta 12
ceros iniciales
H
Formato de 24 horas de una hora con 00 hasta 23
ceros iniciales
i
Minutos, con ceros iniciales
00 hasta 59
s
Segundos, con ceros iniciales
00 hasta 59
u
Microsegundos (aadido en PHP
Ejemplo: 654321
5.2.2). Observe que date() siempre
generar 000000 ya que toma un
parmetro de tipo integer, mientras
que DateTime::format() admite
microsegundos si DateTime fue
creado con microsegundos.
Zona ----Horaria
e
Identificador de zona horaria (aadido Ejemplos: UTC,GMT,Atlantic/

GUIA PHP FECHAS

Los siguientes caracteres estn reconocidos en


Carcter
Descripcin
deformat
en PHP 5.1.0)
I (i
Si la fecha est en horario de verano
mayscul o no
a)
O
Diferencia de la hora de Greenwich
(GMT) en horas
P
Diferencia con la hora de Greenwich
(GMT) con dos puntos entre horas y
minutos (aadido en PHP 5.1.3)
T
Abreviatura de la zona horaria
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.
Fecha/Ho --ra
Completa
c
Fecha ISO 8601 (aadido en PHP 5)
r
Fecha con formato RFC 2822
U

Segundos desde la poca Unix (1 de


Enero del 1970 00:00:00 GMT)

el parmetro de cadena format


Ejemplo de valores devueltos
Azores
1 si est en horario de
verano, 0 si no.
Ejemplo: +0200
Ejemplo: +02:00
Ejemplos: EST,MDT ...
-43200 hasta50400

--2004-02-12T15:19:21+00:00
Ejemplo: Thu, 21 Dec 2000
16:01:07 +0200
Vea tambintime()

Los caracteres no reconocidos en la cadena de formato sern impresos tal


cual. El formato Z siempre devolver 0 cuando se usa gmdate().
Nota:
Ya que esta funcin slo acepta marcas de tiempo de tipo integer el carcter
de formato u slo es til cuando se usa la funcin date_format() con marcas
de tiempo basadas en usuario creadas con date_create().
timestamp
El parmetro opcional timestamp es una marca temporal de Unix de
tipo integer que por defecto es la hora local si no se proporciona ningn
valor a timestamp. En otras palabras, es de forma predeterminada el valor
de la funcin time().
Valores devueltos
Devuelve una cadena de fecha formateada. Si se usa un valor no numrico
para timestamp, se devuelve FALSE y se emite un error de
nivel E_WARNING.
Errores/Excepciones

GUIA PHP FECHAS

Cada vez que se llame a una funcin de fecha/hora se generar


un E_NOTICE si la zona horaria no es vlida, y/o un
mensaje E_STRICT o E_WARNING si se emplea la configuracin del sistema o
la variable global TZ. Vase tambin date_default_timezone_set()

Ejemplos
Ejemplo #1 Ejemplo de date()
<?php
// Establecer la zona horaria predeterminada a usar. Disponible desde PHP 5.
1
date_default_timezone_set('UTC');

// Imprime algo como: Monday


echo date("l");
// Imprime algo como: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');
// Imprime: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
/* Usar las constantes en el parmetro de formato */
// Imprime algo como: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);
// Imprime algo como: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>
Puede prevenir que un carcter reconocido en la cadena de formato sea
expandido escapndolo con una barra invertida precedente. Si el carcter
con una barra invertida es ya una secuencia especial, necesitar escapar
tambin la barra invertida.
Ejemplo #2 Escapar caracteres en date()

GUIA PHP FECHAS

<?php
// imprime algo como: Wednesday the 15th
echo date('l \t\h\e jS');
?>
Es posible usar date() y mktime() juntos para buscar fechas en el futuro o en
el pasado.
Ejemplo #3 Ejemplo de date() y mktime()
<?php
$maana
= mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
$mes_anterior = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$ao_siguiente = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);
?>

Nota:
Esto puede ser ms fiable que aadir o sustraer simplemente el nmero de
segundos de un da o mes a una marca de tiempo debido al horario de
verano.
Algunos ejemplos de formatear date(). Observe que debera escapar
cualesquiera otros caracteres, ya que cualquiera que tenga actualmente un
significado especial producir resultados no deseados, y a otros caracteres
se les pueden asignar significado en futuras versiones de PHP. Cuando se
escapa un carcter, asegrese de usar comillas simples para prevenir que
caracteres como \n se conviertan en nuevas lneas.
Ejemplo #4 date() Formatting
<?php
// Se asume que hoy es March 10th, 2001, 5:16:18 pm, y que estamos en la
// zona horaria Mountain Standard Time (MST)
$hoy = date("F j, Y, g:i a");
// March 10, 2001, 5:16 pm
$hoy = date("m.d.y");
// 03.10.01
$hoy = date("j, n, Y");
// 10, 3, 2001
$hoy = date("Ymd");
// 20010310
$hoy = date('h-i-s, j-m-y, it is w Day');
// 05-16-18, 10-03-01, 1631 1618 6
Satpm01
$hoy = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$hoy = date("D M j G:i:s T Y");
// Sat Mar 10 17:16:18 MST 2001
$hoy = date('H:m:s \m \i\s\ \m\o\n\t\h');
// 17:03:18 m is month
$hoy = date("H:i:s");
// 17:16:18
$hoy = date("Y-m-d H:i:s");
// 2001-03-10 17:16:18 (el formato D
ATETIME de MySQL)
?>

GUIA PHP FECHAS

Para formatear fechas en otros lenguajes debera usar las


funciones setlocale() y strftime() en vez de date().
Notas
Nota:
Para generar una marca de tiempo desde una cadena que representa la
fecha, puede usar strtotime(). Adicionalmente, algunas bases de datos
tienen funciones para convertir formatos de fecha en marcas de tiempo
(como la funcin UNIX_TIMESTAMP de MySQL).

FECHA EN ESPAOL
Ahora hablare acerca de como poner las fechas en espaol cuando
trabajamos con PHP, existen muchas formas de hacerlo, que si con
una funcin, que con arrays, que set_locale, por mencionar algunas
de las muchas formas con las que podemos realizar nuestro objetivo,
obviamente todo depende del nivel de conocimiento que se tenga en
PHP buscaremos la forma ms fcil para nosotros de implementar
nuestros scripts.
Empezare a hablar acerca de este tema tomando como entendido
que ya tienen conocimiento bsico de PHP y de la Funcin Date, por si
tienen sus dudas hace tiempopublique un tip acerca de esta funcin
les recomiendo lo revisen antes de empezar.
Sin ms rodeos a codear sea dicho.
Cuando mandamos a imprimir una fecha con PHP aparece en ingles y
con el formato de Unix por defecto, nosotros podemos decir que es lo
que queremos mostrar y como queremos hacerlo.

1
2

<?php
echo date('l, d M Y');

GUIA PHP FECHAS

3
4
5

//Formato de salida: Friday, 24 Feb 2012


?>

Partiendo de esto, como logramos poner en espaol esa fecha, vamos


a hacerlo de la manera ms facil que es configurar la
funcin setlocale la cual establece la informacin de la configuracin
regional y la cual har todo el trabajo por nosotros. La
funcinsetlocale nos ofrece traducciones de cosas bsicas, como la
fecha, que suelen venir en el sistema operativo. Veamos como
configurar setlocale para el idioma Espaol:
Algo muy importante para tener en cuenta al momento de trabajar
con la funcinsetlocale tambien tenemos que utilizar la
funcin strftime la cual formatea una fecha/hora local segn la
configuracin regional que manejemos con setlocale.
La secuencia estndar para el idioma Espaol que debera funcionar
en cualquier plataforma es:
setlocale(LC_ALL,es_ES);
LC_ALL: Es una constante que especifica la categora de las funciones
afectadas por la configuracin regional, en este caso toma en cuanta
todas las constantes.
es_ES: Los primeros 2 caracteres identifican al idioma, los 2 ltimos
al pas.
Ejemplo:
<?php
/**
* @author Pedro
* @copyright 2015
*/

GUIA PHP FECHAS

// Establecer la zona horaria predeterminada a usar. Disponible desde


PHP 5.1
date_default_timezone_set('America/Lima');
setlocale(LC_ALL,"es_ES");
echo strftime("%A %d de %B del %Y");
//Salida: Miercoles4 de Noviembre del 2015
?>

PERO
Qu pasa si nuestro servidor no soporta setlocale , bueno para esto
una forma fcil de hacerlo es usar arrays.
En este caso podemos hacer la traduccin nosotros mismos. Por
ejemplo, para el da de la semana haramos algo as:
<?php
/**
* @author Pedro
* @copyright 2015
*/
// Establecer la zona horaria predeterminada a usar. Disponible desde
PHP 5.1
date_default_timezone_set('America/Lima');

GUIA PHP FECHAS

$dias =
array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sb
ado");
$meses =
array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto"
,"Septiembre","Octubre","Noviembre","Diciembre");
echo $dias[date('w')]." ".date('d')." de ".$meses[date('n')-1]. " del
".date('Y') ;
//Salida: Miercoles 4 de Novienbre del 2015
?>

Explicando un poco el cdigo por si dicen que hizo este tipo, bueno
vamos por partes:
Dentro de la variable $dias utilice un array en el que almacene los
das de la semana, recordemos que los array sirven para almacenar,
manejar y operar conjuntos de variables.
Al momento de mandar a imprimir en pantalla utilice la funcin date
con el formato w que nos devuelve la representacin numrica del
da de la semana (0 para domingo hasta 6 para sbado).
Para la parte de los meses utilice la misma lgica, pero hay que tomar
en cuenta que el formato n nos devuelve los nmeros de los meses
de 1 hasta 12, entonces esto lo que nos causara es que se
recorreran los meses una posicin, ejemplo si dejamos la
$meses[date(n)] lo que nos pondra seria el mes siguiente en lugar
de poner el mes actual, ejemplo, si estamos en Febrero pondra Marzo
y eso no es lo que queremos, de ah que se le haya agregado el -1,
con esto tenemos resuelta esta parte, si se preguntan por que pasa
eso, es por que los arrarys empiezan a contar desde 0 y no desde 1,

GUIA PHP FECHAS

as como tenemos el arreglo de $meses sera de 0 hasta 11 ah


tendramos las 12 posiciones.

Vous aimerez peut-être aussi