1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-25 16:02:13 +01:00
Files
archived-doc-es/reference/datetime/functions/date.xml
Pedro Antonio Gil Rodríguez 8e83e85e3d Actualización a la última versión
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337003 c90b9560-bf6c-de11-be94-00142212c4b1
2015-06-19 10:17:42 +00:00

538 lines
20 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: f9aed876b8d55edeacb49d52940fd89c098641c9 Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.date" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>date</refname>
<refpurpose>Dar formato a la fecha/hora local</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>string</type><methodname>date</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>timestamp</parameter><initializer>time()</initializer></methodparam>
</methodsynopsis>
<para>
Devuelve una cadena formateada según el formato dado usando el
parámetro de tipo integer <parameter>timestamp</parameter> dado o el momento actual
si no se da una marca de tiempo. En otras palabras, <parameter>timestamp</parameter>
es opcional y por defecto es el valor de <function>time</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>format</parameter></term>
<listitem>
<para>
El formato de la fecha de salida tipo <type>string</type>. Vea las opciones
de formato más abajo. También hay varias
<link linkend="datetime.constants.types">constantes de fecha predefinidas</link>
que pueden usarse en su lugar, así por ejemplo <constant>DATE_RSS</constant>
contiene la cadena de formato <literal>'D, d M Y H:i:s'</literal>.
</para>
<para>
<table>
<title>Los siguientes caracteres están reconocidos en el
parámetro de cadena <parameter>format</parameter></title>
<tgroup cols="3">
<thead>
<row>
<entry>Carácter de <parameter>format</parameter></entry>
<entry>Descripción</entry>
<entry>Ejemplo de valores devueltos</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center"><emphasis>Día</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>d</literal></entry>
<entry>Día del mes, 2 dígitos con ceros iniciales</entry>
<entry><literal>01</literal> a <literal>31</literal></entry>
</row>
<row>
<entry><literal>D</literal></entry>
<entry>Una representación textual de un día, tres letras</entry>
<entry><literal>Mon</literal> hasta <literal>Sun</literal></entry>
</row>
<row>
<entry><literal>j</literal></entry>
<entry>Día del mes sin ceros iniciales</entry>
<entry><literal>1</literal> a <literal>31</literal></entry>
</row>
<row>
<entry><literal>l</literal> ('L' minúscula)</entry>
<entry>Una representación textual completa del día de la semana</entry>
<entry><literal>Sunday</literal> hasta <literal>Saturday</literal></entry>
</row>
<row>
<entry><literal>N</literal></entry>
<entry>Representación numérica ISO-8601 del día de la semana (añadido en
PHP 5.1.0)</entry>
<entry><literal>1</literal> (para lunes) hasta <literal>7</literal> (para domingo)</entry>
</row>
<row>
<entry><literal>S</literal></entry>
<entry>Sufijo ordinal inglés para el día del mes, 2 caracteres</entry>
<entry>
<literal>st</literal>, <literal>nd</literal>, <literal>rd</literal> o
<literal>th</literal>. Funciona bien con <literal>j</literal>
</entry>
</row>
<row>
<entry><literal>w</literal></entry>
<entry>Representación numérica del día de la semana</entry>
<entry><literal>0</literal> (para domingo) hasta <literal>6</literal> (para sábado)</entry>
</row>
<row>
<entry><literal>z</literal></entry>
<entry>El día del año (comenzando por 0)</entry>
<entry><literal>0</literal> hasta <literal>365</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Semana</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>W</literal></entry>
<entry>Número de la semana del año ISO-8601, las semanas comienzan en lunes
(añadido en PHP 4.1.0)</entry>
<entry>Ejemplo: <literal>42</literal> (la 42ª semana del año)</entry>
</row>
<row>
<entry align="center"><emphasis>Mes</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>F</literal></entry>
<entry>Una representación textual completa de un mes, como January o March</entry>
<entry><literal>January</literal> hasta <literal>December</literal></entry>
</row>
<row>
<entry><literal>m</literal></entry>
<entry>Representación numérica de una mes, con ceros iniciales</entry>
<entry><literal>01</literal> hasta <literal>12</literal></entry>
</row>
<row>
<entry><literal>M</literal></entry>
<entry>Una representación textual corta de un mes, tres letras</entry>
<entry><literal>Jan</literal> hasta <literal>Dec</literal></entry>
</row>
<row>
<entry><literal>n</literal></entry>
<entry>Representación numérica de un mes, sin ceros iniciales</entry>
<entry><literal>1</literal> hasta <literal>12</literal></entry>
</row>
<row>
<entry><literal>t</literal></entry>
<entry>Número de días del mes dado</entry>
<entry><literal>28</literal> hasta <literal>31</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Año</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>L</literal></entry>
<entry>Si es un año bisiesto</entry>
<entry><literal>1</literal> si es bisiesto, <literal>0</literal> si no.</entry>
</row>
<row>
<entry><literal>o</literal></entry>
<entry>Número de año ISO-8601. Esto tiene el mismo valor que
<literal>Y</literal>, excepto que si el número de la semana ISO
(<literal>W</literal>) pertenece al año anterior o siguiente, se usa
ese año en su lugar. (añadido en PHP 5.1.0)</entry>
<entry>Ejemplos: <literal>1999</literal> o <literal>2003</literal></entry>
</row>
<row>
<entry><literal>Y</literal></entry>
<entry>Una representación numérica completa de un año, 4 dígitos</entry>
<entry>Ejemplos: <literal>1999</literal> o <literal>2003</literal></entry>
</row>
<row>
<entry><literal>y</literal></entry>
<entry>Una representación de dos dígitos de un año</entry>
<entry>Ejemplos: <literal>99</literal> o <literal>03</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Hora</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>a</literal></entry>
<entry>Ante meridiem y Post meridiem en minúsculas</entry>
<entry><literal>am</literal> o <literal>pm</literal></entry>
</row>
<row>
<entry><literal>A</literal></entry>
<entry>Ante meridiem y Post meridiem en mayúsculas</entry>
<entry><literal>AM</literal> o <literal>PM</literal></entry>
</row>
<row>
<entry><literal>B</literal></entry>
<entry>Hora Internet</entry>
<entry><literal>000</literal> hasta <literal>999</literal></entry>
</row>
<row>
<entry><literal>g</literal></entry>
<entry>Formato de 12 horas de una hora sin ceros iniciales</entry>
<entry><literal>1</literal> hasta <literal>12</literal></entry>
</row>
<row>
<entry><literal>G</literal></entry>
<entry>Formato de 24 horas de una hora sin ceros iniciales</entry>
<entry><literal>0</literal> hasta <literal>23</literal></entry>
</row>
<row>
<entry><literal>h</literal></entry>
<entry>Formato de 12 horas de una hora con ceros iniciales</entry>
<entry><literal>01</literal> hasta <literal>12</literal></entry>
</row>
<row>
<entry><literal>H</literal></entry>
<entry>Formato de 24 horas de una hora con ceros iniciales</entry>
<entry><literal>00</literal> hasta <literal>23</literal></entry>
</row>
<row>
<entry><literal>i</literal></entry>
<entry>Minutos, con ceros iniciales</entry>
<entry><literal>00</literal> hasta <literal>59</literal></entry>
</row>
<row>
<entry><literal>s</literal></entry>
<entry>Segundos, con ceros iniciales</entry>
<entry><literal>00</literal> hasta <literal>59</literal></entry>
</row>
<row>
<entry><literal>u</literal></entry>
<entry>
Microsegundos (añadido en PHP 5.2.2). Observe que
<function>date</function> siempre generará
<literal>000000</literal> ya que toma un parámetro de tipo
<type>integer</type>, mientras que <methodname>DateTime::format</methodname>
admite microsegundos si <classname>DateTime</classname> fue
creado con microsegundos.
</entry>
<entry>Ejemplo: <literal>654321</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Zona Horaria</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>e</literal></entry>
<entry>Identificador de zona horaria (añadido en PHP 5.1.0)</entry>
<entry>Ejemplos: <literal>UTC</literal>, <literal>GMT</literal>, <literal>Atlantic/Azores</literal></entry>
</row>
<row>
<entry><literal>I</literal> (i mayúscula)</entry>
<entry>Si la fecha está en horario de verano o no</entry>
<entry><literal>1</literal> si está en horario de verano, <literal>0</literal> si no.</entry>
</row>
<row>
<entry><literal>O</literal></entry>
<entry>Diferencia de la hora de Greenwich (GMT) en horas</entry>
<entry>Ejemplo: <literal>+0200</literal></entry>
</row>
<row>
<entry><literal>P</literal></entry>
<entry>Diferencia con la hora de Greenwich (GMT) con dos puntos entre horas y minutos
(añadido en PHP 5.1.3)</entry>
<entry>Ejemplo: <literal>+02:00</literal></entry>
</row>
<row>
<entry><literal>T</literal></entry>
<entry>Abreviatura de la zona horaria</entry>
<entry>Ejemplos: <literal>EST</literal>, <literal>MDT</literal> ...</entry>
</row>
<row>
<entry><literal>Z</literal></entry>
<entry>Í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.</entry>
<entry><literal>-43200</literal> hasta <literal>50400</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Fecha/Hora Completa</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>c</literal></entry>
<entry>Fecha ISO 8601 (añadido en PHP 5)</entry>
<entry>2004-02-12T15:19:21+00:00</entry>
</row>
<row>
<entry><literal>r</literal></entry>
<entry>Fecha con formato <link xlink:href="&url.rfc;2822">RFC 2822</link></entry>
<entry>Ejemplo: <literal>Thu, 21 Dec 2000 16:01:07 +0200</literal></entry>
</row>
<row>
<entry><literal>U</literal></entry>
<entry>Segundos desde la Época Unix (1 de Enero del 1970 00:00:00 GMT)</entry>
<entry>Vea también <function>time</function></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Los caracteres no reconocidos en la cadena de formato serán impresos
tal cual. El formato <literal>Z</literal> siempre devolverá
<literal>0</literal> cuando se usa <function>gmdate</function>.
</para>
<note>
<para>
Ya que esta función sólo acepta marcas de tiempo de tipo <type>integer</type> el
carácter de formato <literal>u</literal> sólo es útil cuando se usa la
función <function>date_format</function> con marcas de tiempo basadas en usuario
creadas con <function>date_create</function>.
</para>
</note>
</listitem>
</varlistentry>
&date.timestamp.description;
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve una cadena de fecha formateada. Si se usa un valor no numérico para
<parameter>timestamp</parameter>, se devuelve &false; y
se emite un error de nivel <constant>E_WARNING</constant>.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
&date.timezone.errors.description;
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>5.1.0</entry>
<entry>
El rango válido de una marca de tiempo es típicamente desde Fri, 13 Dec
1901 20:45:54 GMT a Tue, 19 Jan 2038 03:14:07 GMT. (Estas son
las fechas que corresponden a los valores mínimo y máximo de
un entero con signo de 32 bit). Sin embargo, antes de PHP 5.1.0 este rango estaba limitado
desde 01-01-1970 a 19-01-2038 en algunos sistemas (p.ej. Windows).
</entry>
</row>
&date.timezone.errors.changelog;
<row>
<entry>5.1.1</entry>
<entry>
Hay <link linkend="datetime.constants">constantes</link> útiles
de formatos de fecha/hora estándar que se pueden usar para especificar el
parámetro <parameter>format</parameter>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo de <function>date</function></title>
<programlisting role="php">
<![CDATA[
<?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 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));
?>
]]>
</programlisting>
</example>
</para>
<para>
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.
<example>
<title>Escapar caracteres en <function>date</function></title>
<programlisting role="php">
<![CDATA[
<?php
// imprime algo como: Wednesday the 15th
echo date('l \t\h\e jS');
?>
]]>
</programlisting>
</example>
</para>
<para>
Es posible usar <function>date</function> y
<function>mktime</function> juntos para buscar fechas en el futuro
o en el pasado.
<example>
<title>Ejemplo de <function>date</function> y <function>mktime</function></title>
<programlisting role="php">
<![CDATA[
<?php
$mañana = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
$mes_anterior = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$año_siguiente = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);
?>
]]>
</programlisting>
</example>
<note>
<para>
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.
</para>
</note>
</para>
<para>
Algunos ejemplos de formatear <function>date</function>. 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.
<example>
<title><function>date</function> Formatting</title>
<programlisting role="php">
<![CDATA[
<?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 DATETIME de MySQL)
?>
]]>
</programlisting>
</example>
</para>
<para>
Para formatear fechas en otros lenguajes debería usar las
funciones <function>setlocale</function> y <function>strftime</function>
en vez de <function>date</function>.
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Para generar una marca de tiempo desde una cadena que representa la fecha,
puede usar <function>strtotime</function>. Adicionalmente, algunas
bases de datos tienen funciones para convertir formatos de fecha en marcas de tiempo
(como la función <link xlink:href="&url.mysql.docs.date;">UNIX_TIMESTAMP</link>
de MySQL).
</para>
</note>
<tip>
<para>
La marca de tiempo del inicio de una petición está disponible en
<varname>$_SERVER['REQUEST_TIME']</varname> desde PHP 5.1.
</para>
</tip>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>gmdate</function></member>
<member><function>idate</function></member>
<member><function>getdate</function></member>
<member><function>getlastmod</function></member>
<member><function>mktime</function></member>
<member><function>strftime</function></member>
<member><function>time</function></member>
<member><function>strtotime</function></member>
<member><link linkend="datetime.constants.types">Constantes Predefinidas de DateTime</link></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->