1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-24 07:22:16 +01:00
Files
Marcos Porto Mariño 5ac01aa46a Various updates, up to EN 69fe083 (#317)
* Fix typo add ref warn.deprecated.feature-8-1-0

* Remove <para> in invalid places

* Fix language snippets
2025-11-16 02:28:20 +01:00

533 lines
20 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3a8c3e77df070a046c9d5b56b68926ca2d7e5ee3 Maintainer: Marqitos Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="datetime.format" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>DateTimeInterface::format</refname>
<refname>DateTimeImmutable::format</refname>
<refname>DateTime::format</refname>
<refname>date_format</refname>
<refpurpose>Retorna una fecha formateada según el formato proporcionado</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>&style.oop;</para>
<methodsynopsis role="DateTimeInterface">
<modifier>public</modifier> <type>string</type><methodname>DateTimeInterface::format</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
</methodsynopsis>
<methodsynopsis role="DateTimeImmutable">
<modifier>public</modifier> <type>string</type><methodname>DateTimeImmutable::format</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
</methodsynopsis>
<methodsynopsis role="DateTime">
<modifier>public</modifier> <type>string</type><methodname>DateTime::format</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
</methodsynopsis>
<para>&style.procedural;</para>
<methodsynopsis>
<type>string</type><methodname>date_format</methodname>
<methodparam><type>DateTimeInterface</type><parameter>object</parameter></methodparam>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
</methodsynopsis>
<para>
Retorna una fecha formateada según el formato proporcionado.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
&date.datetime.description;
<varlistentry>
<term><parameter>format</parameter></term>
<listitem>
<para>
El formato de la fecha deseada. Ver las opciones de formato a continuación.
Existen también numerosas
<link linkend="datetimeinterface.constants.types">constantes de fechas</link>
que pueden ser utilizadas, lo que hace que <constant>DATE_RSS</constant>
reemplace el formato <literal>"D, d M Y H:i:s"</literal>.
</para>
<para>
<table>
<title>
Los siguientes caracteres son reconocidos en el parámetro
<parameter>format</parameter>
</title>
<tgroup cols="3">
<thead>
<row>
<entry>Caracteres para el parámetro <parameter>format</parameter></entry>
<entry>Descripción</entry>
<entry>Ejemplos de valores retornados</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, en dos dígitos (con un cero inicial)</entry>
<entry><literal>01</literal> a <literal>31</literal></entry>
</row>
<row>
<entry><literal>D</literal></entry>
<entry>Día de la semana, en tres letras (y en inglés - por defecto: en inglés, o sino, en el idioma local del servidor)</entry>
<entry><literal>Mon</literal> a <literal>Sun</literal></entry>
</row>
<row>
<entry><literal>j</literal></entry>
<entry>Día del mes sin los ceros iniciales</entry>
<entry><literal>1</literal> a <literal>31</literal></entry>
</row>
<row>
<entry><literal>l</literal> ('L' minúscula)</entry>
<entry>Día de la semana, textual, versión larga, en inglés</entry>
<entry><literal>Sunday</literal> a <literal>Saturday</literal></entry>
</row>
<row>
<entry><literal>N</literal></entry>
<entry>Representación numérica ISO 8601 del día de la semana</entry>
<entry><literal>1</literal> (para Lunes) a <literal>7</literal> (para Domingo)</entry>
</row>
<row>
<entry><literal>S</literal></entry>
<entry>Sufijo ordinal de un número para el día del mes, en inglés, en dos letras</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>Día de la semana en formato numérico</entry>
<entry><literal>0</literal> (para domingo) a <literal>6</literal> (para sábado)</entry>
</row>
<row>
<entry><literal>z</literal></entry>
<entry>Día del año</entry>
<entry><literal>0</literal> a <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 semana en el año ISO 8601, las semanas comienzan
el lunes</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>Mes, textual, versión larga; en inglés, como
<literal>January</literal> o <literal>December</literal></entry>
<entry><literal>January</literal> a <literal>December</literal></entry>
</row>
<row>
<entry><literal>m</literal></entry>
<entry>Mes en formato numérico, con ceros iniciales</entry>
<entry><literal>01</literal> a <literal>12</literal></entry>
</row>
<row>
<entry><literal>M</literal></entry>
<entry>Mes, en tres letras, en inglés</entry>
<entry><literal>Jan</literal> a <literal>Dec</literal></entry>
</row>
<row>
<entry><literal>n</literal></entry>
<entry>Mes sin los ceros iniciales</entry>
<entry><literal>1</literal> a <literal>12</literal></entry>
</row>
<row>
<entry><literal>t</literal></entry>
<entry>Número de días en el mes</entry>
<entry><literal>28</literal> a <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>¿Es el 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>Año de numeración de semanas ISO 8601. Es el mismo valor que
<literal>Y</literal>, excepto si el número de semana ISO
(<literal>W</literal>) pertenece al año anterior o siguiente,
este año será utilizado en su lugar.</entry>
<entry>Ejemplos: <literal>1999</literal> o <literal>2003</literal></entry>
</row>
<row>
<entry><literal>X</literal></entry>
<entry>
Una representación numérica completa extendida de un año, de al menos 4 dígitos,
con un <literal>-</literal> para los años antes de la era común
y un <literal>+</literal> para los años de la era común.
</entry>
<entry>
Ejemplos: <literal>-0055</literal>, <literal>+0787</literal>,
<literal>+1999</literal>, <literal>+10191</literal>
</entry>
</row>
<row>
<entry><literal>x</literal></entry>
<entry>
Una representación numérica completa extendida si es necesario,
o una representación numérica completa estándar si es posible (como <literal>Y</literal>).
Al menos cuatro dígitos. Los años anteriores a la era común son prefijados por un <literal>-</literal>.
Los años más allá (y incluyendo) del <literal>10000</literal> son prefijados por un <literal>+</literal>.
</entry>
<entry>
Ejemplos: <literal>-0055</literal>, <literal>0787</literal>,
<literal>1999</literal>, <literal>+10191</literal>
</entry>
</row>
<row>
<entry><literal>Y</literal></entry>
<entry>Una representación numérica completa de un año, al menos 4 dígitos, con <literal>-</literal> para los años av. J.-C.</entry>
<entry>Ejemplos: <literal>-0055</literal>, <literal>0787</literal>,
<literal>1999</literal>, <literal>2003</literal>, <literal>10191</literal></entry>
</row>
<row>
<entry><literal>y</literal></entry>
<entry>Año en 2 dígitos</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 Swatch</entry>
<entry><literal>000</literal> a <literal>999</literal></entry>
</row>
<row>
<entry><literal>g</literal></entry>
<entry>Hora, en formato 12h, sin los ceros iniciales</entry>
<entry><literal>1</literal> a <literal>12</literal></entry>
</row>
<row>
<entry><literal>G</literal></entry>
<entry>Hora, en formato 24h, sin los ceros iniciales</entry>
<entry><literal>0</literal> a <literal>23</literal></entry>
</row>
<row>
<entry><literal>h</literal></entry>
<entry>Hora, en formato 12h, con los ceros iniciales</entry>
<entry><literal>01</literal> a <literal>12</literal></entry>
</row>
<row>
<entry><literal>H</literal></entry>
<entry>Hora, en formato 24h, con los ceros iniciales</entry>
<entry><literal>00</literal> a <literal>23</literal></entry>
</row>
<row>
<entry><literal>i</literal></entry>
<entry>Minutos con ceros iniciales</entry>
<entry><literal>00</literal> a <literal>59</literal></entry>
</row>
<row>
<entry><literal>s</literal></entry>
<entry>Segundos con ceros iniciales</entry>
<entry><literal>00</literal> a <literal>59</literal></entry>
</row>
<row>
<entry><literal>u</literal></entry>
<entry>
Microsegundos. Tenga en cuenta que la función
<function>date</function> generará siempre
<literal>000000</literal> ya que toma un parámetro de tipo
entero, mientras que el método <methodname>DateTimeInterface::format</methodname>
soporta microsegundos si un objeto de tipo
<interfacename>DateTimeInterface</interfacename> fue creado con microsegundos.
</entry>
<entry>Ejemplo: <literal>654321</literal></entry>
</row>
<row>
<entry><literal>v</literal></entry>
<entry>
Milisegundos. Misma nota que para
<literal>u</literal>.
</entry>
<entry>Ejemplo: <literal>654</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Zona horaria</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>e</literal></entry>
<entry>El identificador de la zona horaria</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>La hora de verano está activada o no</entry>
<entry><literal>1</literal> si sí, <literal>0</literal> si no.</entry>
</row>
<row>
<entry><literal>O</literal></entry>
<entry>Diferencia de horas con la hora de Greenwich (GMT), sin
dos puntos entre las horas y los minutos</entry>
<entry>Ejemplo: <literal>+0200</literal></entry>
</row>
<row>
<entry><literal>P</literal></entry>
<entry>Diferencia con la hora Greenwich (GMT) con un dos puntos
entre las horas y los minutos</entry>
<entry>Ejemplo: <literal>+02:00</literal></entry>
</row>
<row>
<entry><literal>p</literal></entry>
<entry>
Idéntico a <literal>P</literal>, pero retorna <literal>Z</literal> en lugar de <literal>+00:00</literal>
(disponible a partir de PHP 8.0.0)
</entry>
<entry>Ejemplos: <literal>Z</literal> o <literal>+02:00</literal></entry>
</row>
<row>
<entry><literal>T</literal></entry>
<entry>Abreviación de la zona horaria, si es conocida; sino, desplazamiento desde GMT</entry>
<entry>Ejemplos: <literal>EST</literal>, <literal>MDT</literal>, <literal>+05</literal></entry>
</row>
<row>
<entry><literal>Z</literal></entry>
<entry>Desplazamiento horario en segundos. El desplazamiento de zonas al oeste
de la zona UTC es negativo, y al este, es positivo.</entry>
<entry><literal>-43200</literal> a <literal>50400</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Fecha y Hora completa</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>c</literal></entry>
<entry>Fecha en formato ISO 8601. Solo compatible con el formato no expandido (hasta el año 9999). Las fechas posteriores generarán una cadena no válida. Para fechas posteriores y el formato expandido, consulte <literal>x</literal> y <literal>X</literal>.</entry>
<entry>2004-02-12T15:19:21+00:00</entry>
</row>
<row>
<entry><literal>r</literal></entry>
<entry>Formato de fecha <link xlink:href="&url.rfc;2822">RFC 2822</link>/<link xlink:href="&url.rfc;5322">RFC 5322</link></entry>
<entry>Ejemplo: <literal>Thu, 21 Dec 2000 16:01:070200</literal></entry>
</row>
<row>
<entry><literal>U</literal></entry>
<entry>Segundos desde la época Unix (1 de Enero de 1970, 0h00 00s GMT)</entry>
<entry>Ver también <function>time</function></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Los caracteres no reconocidos serán impresos tal cual.
"<literal>Z</literal>" retornará siempre <literal>0</literal> cuando se utiliza con
<function>gmdate</function>.
</para>
<note>
<para>
Sabiendo que esta función solo acepta enteros en forma de timestamp,
el carácter <literal>u</literal> solo es útil al utilizar la función
<function>date_format</function> con un timestamp de usuario creado con la función
<function>date_create</function>.
</para>
</note>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Retorna la fecha formateada, en forma de string,
en caso de éxito.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.2.0</entry>
<entry>
Los caracteres de formato <literal>X</literal> o <literal>x</literal>
han sido añadidos.
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
El carácter de formato <literal>p</literal> ha sido añadido.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Ejemplo con <function>DateTime::format</function></title>
<para>&style.oop;</para>
<programlisting role="php">
<![CDATA[
<?php
$date = new DateTimeImmutable('2000-01-01');
echo $date->format('Y-m-d H:i:s');
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
2000-01-01 00:00:00
]]>
</screen>
<para>&style.procedural;</para>
<programlisting role="php">
<![CDATA[
<?php
$date = date_create('2000-01-01');
echo date_format($date, 'Y-m-d H:i:s');
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
2000-01-01 00:00:00
]]>
</screen>
</example>
</para>
<para>
<example>
<title>Más ejemplos</title>
<programlisting role="php">
<![CDATA[
<?php
// set the default timezone to use.
date_default_timezone_set('UTC');
// now
$date = new DateTimeImmutable();
// Imprime algo como: Wednesday
echo $date->format('l'), "\n";
// Imprime algo como: Wednesday 19th of October 2022 08:40:48 AM
echo $date->format('l jS \o\f F Y h:i:s A'), "\n";
/* use the constants in the format parameter */
// imprime algo como: Wed, 19 Oct 2022 08:40:48 +0000
echo $date->format(DateTimeInterface::RFC2822), "\n";
?>
]]>
</programlisting>
</example>
</para>
<para>
Es posible evitar que un carácter reconocido en la cadena de formato
se expanda escapándolo con un backslash (barra invertida). Si el carácter con
backslash es ya una secuencia especial, será necesario también escapar
el backslash.
<example>
<title>Escape de caracteres durante el formato</title>
<programlisting role="php">
<![CDATA[
<?php
$date = new DateTimeImmutable();
// imprime algo como: Wednesday the 19th
echo $date->format('l \t\h\e jS');
?>
]]>
</programlisting>
</example>
</para>
<para>
Para formatear fechas en otros idiomas,
<methodname>IntlDateFormatter::format</methodname>
puede ser utilizada en lugar de <methodname>DateTimeInterface::format</methodname>.
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<para>
Este método no utiliza locales. Todos los despliegues
serán en inglés.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><methodname>IntlDateFormatter::format</methodname></member>
</simplelist>
</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
-->