(PHP 4, PHP 5, PHP 7, PHP 8)
date — Da formato a una marca de tiempo de Unix (Unix timestamp)
Devuelve una cadena formateada según el formato indicado usando el
integer timestamp
(Unix 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().
Las marcas de tiempo de Unix no manejan zonas horarias. Usa la clase DateTimeImmutable, y su método DateTimeInterface::format() para formatear fecha/hora incluyendo la información de zona horaria.
format
Formato aceptado por DateTimeInterface::format().
Nota: date() generará siempre
000000
como microsegundos ya que toma un tipo int como parámetro, mientras que DateTimeInterface::format() soporta microsegundos, si el objeto del tipo DateTimeInterface es creado con microsegundos.
timestamp
El parámetro opcional timestamp
es una marca temporal de Unix de tipo
integer que por defecto es la hora local si no se proporciona
ningún valor a timestamp
. En otras palabras,
es de forma predeterminada el valor de la función time().
Devuelve una cadena de fecha formateada.
Cada vez que se llame a una función de fecha/hora se generará un E_NOTICE
si la zona horaria no es válida, y/o un mensaje E_STRICT
o E_WARNING
si se emplea la configuración del sistema o la variable global
TZ. Véase también date_default_timezone_set()
Versión | Descripción |
---|---|
8.0.0 |
timestamp ahora es nullable.
|
Ejemplo #1 date() examples
<?php
// Establecer la zona horaria por omisión
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');
// Prints: 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 parámetro 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 carácter reconocido en la cadena de formato sea expandido escapándolo con una barra invertida precedente. Si el carácter con una barra invertida es ya una secuencia especial, necesitará escapar también la barra invertida.
Ejemplo #2 Escapando caracteres en date()
<?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
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);
?>
Nota:
Esto puede ser más fiable que añadir o sustraer simplemente el número de segundos de un día o mes a una marca de tiempo debido al horario de verano.
Algunos ejemplos de formatear date(). Observe que debería 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 carácter, asegúrese de usar comillas simples para prevenir que caracteres como \n se conviertan en nuevas líneas.
Ejemplo #4 Dando formato con date()
<?php
// Se asume que hoy es March 10th, 2001, 5:16:18 pm, y que estamos en la
// zona horaria Mountain Standard Time (MST)
$today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm
$today = date("m.d.y"); // 03.10.01
$today = date("j, n, Y"); // 10, 3, 2001
$today = date("Ymd"); // 20010310
$today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day.
$today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month
$today = date("H:i:s"); // 17:16:18
$today = date("Y-m-d H:i:s"); // 2001-03-10 17:16:18 (the MySQL DATETIME format)
?>
Para formatear fechas en otros lenguajes, debería usar IntlDateFormatter::format() en vez de date().
Nota:
Para generar una marca de tiempo desde una cadena que representa la fecha, puede usar strtotime(). Además, algunas bases de datos tienen funciones para convertir formatos de fecha en marcas de tiempo (como la función » UNIX_TIMESTAMP de MySQL).
La marca de tiempo del inicio de una petición está disponible en $_SERVER['REQUEST_TIME'].