mirror of
https://github.com/php/doc-es.git
synced 2026-03-24 07:22:16 +01:00
1244 lines
43 KiB
XML
1244 lines
43 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- EN-Revision: 3a8c3e77df070a046c9d5b56b68926ca2d7e5ee3 Maintainer: PhilDaiguille Status: ready -->
|
|
<!-- Reviewed: no Maintainer: Marqitos -->
|
|
<chapter xml:id="datetime.formats" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
<title>Formatos soportados de tiempo y fechas</title>
|
|
|
|
<para>
|
|
Esta sección describe, en un formato de tipo BNF, todos los formatos diferentes
|
|
que el analizador de <classname>DateTimeImmutable</classname>,
|
|
<classname>DateTime</classname>, <function>date_create_immutable</function>,
|
|
<function>date_create</function>, <function>date_parse</function>, y
|
|
<function>strtotime</function> es capaz de comprender.
|
|
Los formatos están agrupados por secciones.
|
|
En la mayoría de los casos, los formatos de secciones diferentes, separados por
|
|
caracteres de espacio en blanco, comas o puntos, pueden ser utilizados en la misma cadena fecha/hora. Para cada formato soportado, se dan uno o varios ejemplos así como una descripción del formato correspondiente.
|
|
Los caracteres entre comillas simples para los formatos son insensibles a la mayúscula/minúscula (<literal>'t'</literal> podría escribirse <literal>t</literal> o <literal>T</literal>), los caracteres escritos entre comillas dobles, ellos, son sensibles a la mayúscula/minúscula (<literal>"T"</literal> y solo <literal>T</literal>).
|
|
</para>
|
|
<para>
|
|
Para formatear objetos <classname>DateTimeImmutable</classname> y
|
|
<classname>DateTime</classname>, por favor refiérase a la documentación
|
|
del método <function>DateTimeInterface::format</function>.
|
|
</para>
|
|
|
|
<para>
|
|
Un conjunto de reglas generales debería ser tenido en cuenta.
|
|
</para>
|
|
<orderedlist>
|
|
<listitem>
|
|
<simpara>
|
|
El analizador, permite a cada unidad (año, mes, día, hora, minuto, segundo)
|
|
el rango completo de valores. Para un año son solo 4 dígitos, para un
|
|
mes es 0-12, para un día 0-31 y para la hora y los minutos es 0-59.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
60 es permitido para los segundos, ya que a veces cadenas de fechas con
|
|
este segundo intercalar aparecen. Pero PHP implementa el tiempo Unix
|
|
donde "60" no es un número de segundos válido y así overflow.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
<function>strtotime</function> returns &false; si un número está fuera
|
|
del rango, y <function>DateTimeImmutable::__construct</function> lanza
|
|
una excepción.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Si una cadena contiene una fecha, todos los elementos son puestos a 0.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Todos los elementos de tiempo menos significativos son puestos a 0 si
|
|
cualquier elemento de un tiempo está presente en la cadena dada.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
El analizador es tonto, y no efectúa verificación para hacerlo más rápido
|
|
(y más genérico).
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Además de las reglas aplicables a los elementos temporales individuales,
|
|
el analizador comprende también
|
|
<link linkend="datetime.formats.compound">formatos compuestos</link> más
|
|
específicos, tales como el análisis de timestamps Unix (<literal>@1690388256</literal>)
|
|
y fechas semanales ISO (<literal>2008-W28-3</literal>).
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Hay una verificación adicional si una fecha inválida es proporcionada:
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$res = date_parse("2015-09-31");
|
|
var_dump($res["warnings"]);
|
|
]]>
|
|
</programlisting>
|
|
&example.outputs;
|
|
<screen>
|
|
<![CDATA[
|
|
array(1) {
|
|
[11] =>
|
|
string(27) "The parsed date was invalid"
|
|
}
|
|
]]>
|
|
</screen>
|
|
</informalexample>
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
Es ya posible manejar estos casos especiales, pero el uso de
|
|
<function>DateTimeImmutable::createFromFormat</function> es requerido
|
|
proporcionando el formato deseado.
|
|
<informalexample>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$res = DateTimeImmutable::createFromFormat("Y-m-d", "2015-09-34");
|
|
var_dump($res);
|
|
]]>
|
|
</programlisting>
|
|
&example.outputs;
|
|
<screen>
|
|
<![CDATA[
|
|
object(DateTimeImmutable)#1 (3) {
|
|
["date"] =>
|
|
string(26) "2015-10-04 17:24:43.000000"
|
|
["timezone_type"] =>
|
|
int(3)
|
|
["timezone"] =>
|
|
string(13) "Europe/London"
|
|
}
|
|
]]>
|
|
</screen>
|
|
</informalexample>
|
|
</para>
|
|
</listitem>
|
|
</orderedlist>
|
|
|
|
<!--Time Formats: {{{-->
|
|
<sect1 annotations="chunk:false" xml:id="datetime.formats.time">
|
|
<title>Formatos para los tiempos (Time)</title>
|
|
|
|
<para>
|
|
Esta página describe los diferentes formatos en una sintaxis de tipo BNF
|
|
que los analizadores de <classname>DateTimeImmutable</classname>,
|
|
<classname>DateTime</classname>, <function>date_create</function>,
|
|
<function>date_create_immutable</function>, y
|
|
<function>strtotime</function> comprenden.
|
|
</para>
|
|
<para>
|
|
Para formatear objetos <classname>DateTimeImmutable</classname> y
|
|
<classname>DateTime</classname>, por favor refiérase a la documentación
|
|
del método <function>DateTimeInterface::format</function>.
|
|
</para>
|
|
|
|
<table>
|
|
<title>Símbolos utilizados</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Descripción</entry>
|
|
<entry>Formats</entry>
|
|
<entry>Ejemplos</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>frac</literal></entry>
|
|
<entry>. [0-9]+</entry>
|
|
<entry>".21342", ".85"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>hh</literal></entry>
|
|
<entry>"0"?[1-9] | "1"[0-2]</entry>
|
|
<entry>"04", "7", "12"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>HH</literal></entry>
|
|
<entry>[01][0-9] | "2"[0-4]</entry>
|
|
<entry>"04", "07", "19"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>meridiem</literal></entry>
|
|
<entry>[AaPp] .? [Mm] .? [\0\t ]</entry>
|
|
<entry>"A.m.", "pM", "am."</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>MM</literal></entry>
|
|
<entry>[0-5][0-9]</entry>
|
|
<entry>"00", "12", "59"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>II</literal></entry>
|
|
<entry>[0-5][0-9]</entry>
|
|
<entry>"00", "12", "59"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>espacio</literal></entry>
|
|
<entry>[ \t]</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>tz</literal></entry>
|
|
<entry>"("? [A-Za-z]{1,6} ")"? | [A-Z][a-z]+([_/][A-Z][a-z]+)+</entry>
|
|
<entry>"CEST", "Europe/Amsterdam", "America/Indiana/Knox"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>tzcorrection</literal></entry>
|
|
<entry>"GMT"? [+-] <literal>hh</literal> ":"? <literal>MM</literal>?</entry>
|
|
<entry>"+0400", "GMT-07:00", "-07:00"</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<table>
|
|
<title>Notación de 12 horas</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Descripción</entry>
|
|
<entry>Formato</entry>
|
|
<entry>Ejemplos</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Horas solas, con meridiem</entry>
|
|
<entry><literal>hh</literal> <literal>espacio</literal>? <literal>meridiem</literal></entry>
|
|
<entry>"4 am", "5PM"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Horas y minutos, con meridiem</entry>
|
|
<entry><literal>hh</literal> [.:] <literal>MM</literal> <literal>espacio</literal>? <literal>meridiem</literal></entry>
|
|
<entry>"4:08 am", "7:19P.M."</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Horas, minutos y segundos con meridiem</entry>
|
|
<entry><literal>hh</literal> [.:] <literal>MM</literal> [.:] <literal>II</literal> <literal>espacio</literal>? <literal>meridiem</literal></entry>
|
|
<entry>"4:08:37 am", "7:19:19P.M."</entry>
|
|
</row>
|
|
<row>
|
|
<entry>MS SQL (Horas, minutos, segundos y fracción con meridiem)</entry>
|
|
<entry><literal>hh</literal> ":" <literal>MM</literal> ":" <literal>II</literal> [.:] [0-9]+ <literal>meridiem</literal></entry>
|
|
<entry>"4:08:39:12313am"</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<table>
|
|
<title>Notación de 24 horas</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Descripción</entry>
|
|
<entry>Formato</entry>
|
|
<entry>Ejemplos</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Horas y minutos</entry>
|
|
<entry>'t'? <literal>HH</literal> [.:] <literal>MM</literal></entry>
|
|
<entry>"04:08", "19.19", "T23:43"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Horas y minutos, sin dos puntos</entry>
|
|
<entry>'t'? <literal>HH</literal> <literal>MM</literal></entry>
|
|
<entry>"0408", "t1919", "T2343"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Horas, minutos y segundos</entry>
|
|
<entry>'t'? <literal>HH</literal> [.:] <literal>MM</literal> [.:] <literal>II</literal></entry>
|
|
<entry>"04.08.37", "t19:19:19"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Horas, minutos y segundos, sin dos puntos</entry>
|
|
<entry>'t'? <literal>HH</literal> <literal>MM</literal> <literal>II</literal></entry>
|
|
<entry>"040837", "T191919"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Horas, minutos, segundos y zona horaria</entry>
|
|
<entry>'t'? <literal>HH</literal> [.:] <literal>MM</literal> [.:] <literal>II</literal> <literal>espacio</literal>? ( <literal>tzcorrection</literal> | <literal>tz</literal> )</entry>
|
|
<entry>"040837CEST", "T191919-0700"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Horas, minutos, segundos y fracción</entry>
|
|
<entry>'t'? <literal>HH</literal> [.:] <literal>MM</literal> [.:] <literal>II</literal> <literal>frac</literal></entry>
|
|
<entry>"04.08.37.81412", "19:19:19.532453"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Información de zona horaria</entry>
|
|
<entry><literal>tz</literal> | <literal>tzcorrection</literal></entry>
|
|
<entry>"CEST", "Europe/Amsterdam", "+0430", "GMT-06:00"</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
</sect1>
|
|
<!--}}}-->
|
|
|
|
<!--Date Formats: {{{-->
|
|
<sect1 annotations="chunk:false" xml:id="datetime.formats.date">
|
|
<title>Formatos de fechas</title>
|
|
|
|
<para>
|
|
Esta página describe los diferentes formatos en una sintaxis de tipo BNF
|
|
que los analizadores de <classname>DateTimeImmutable</classname>,
|
|
<classname>DateTime</classname>, <function>date_create</function>,
|
|
<function>date_create_immutable</function>, y
|
|
<function>strtotime</function> comprenden.
|
|
</para>
|
|
<para>
|
|
Para formatear objetos <classname>DateTimeImmutable</classname> y
|
|
<classname>DateTime</classname>, por favor refiérase a la documentación
|
|
del método <function>DateTimeInterface::format</function>.
|
|
</para>
|
|
|
|
<table>
|
|
<title>Símbolos utilizados</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Descripción</entry>
|
|
<entry>Formato</entry>
|
|
<entry>Ejemplos</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>sufijo de días</literal></entry>
|
|
<entry>"st" | "nd" | "rd" | "th"</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>dd</literal></entry>
|
|
<entry>([0-2]?[0-9] | "3"[01]) <literal>daysuf</literal>?</entry>
|
|
<entry>"7th", "22nd", "31"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>DD</literal></entry>
|
|
<entry>"0" [0-9] | [1-2][0-9] | "3" [01]</entry>
|
|
<entry>"07", "31"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>m</literal></entry>
|
|
<entry>'january' | 'february' | 'march' | 'april' | 'may' | 'june' |
|
|
'july' | 'august' | 'september' | 'october' | 'november' | 'december' |
|
|
'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' |
|
|
'sept' | 'oct' | 'nov' | 'dec' | "I" | "II" | "III" | "IV" | "V" | "VI"
|
|
| "VII" | "VIII" | "IX" | "X" | "XI" | "XII"</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>M</literal></entry>
|
|
<entry>'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' |
|
|
'sep' | 'sept' | 'oct' | 'nov' | 'dec'</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>mm</literal></entry>
|
|
<entry>"0"? [0-9] | "1"[0-2]</entry>
|
|
<entry>"0", "04", "7", "12"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>MM</literal></entry>
|
|
<entry>"0" [0-9] | "1"[0-2]</entry>
|
|
<entry>"00", "04", "07", "12"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>y</literal></entry>
|
|
<entry>[0-9]{1,4}</entry>
|
|
<entry>"00", "78", "08", "8", "2008"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>yy</literal></entry>
|
|
<entry>[0-9]{2}</entry>
|
|
<entry>"00", "08", "78"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>YY</literal></entry>
|
|
<entry>[0-9]{4}</entry>
|
|
<entry>"2000", "2008", "1978"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>YYY</literal></entry>
|
|
<entry>[0-9]{5,19}</entry>
|
|
<entry>"81412", "20192"</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<table>
|
|
<title>Formats estándar</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>&Description;</entry>
|
|
<entry>Ejemplos</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>ATOM</entry>
|
|
<entry>"2022-06-02T16:58:35+00:00"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>COOKIE</entry>
|
|
<entry>"Thursday, 02-Jun-2022 16:58:35 UTC"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>ISO8601</entry>
|
|
<entry>"2022-06-02T16:58:35+0000"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><link xlink:href="&url.rfc;822">RFC 822</link></entry>
|
|
<entry>"Thu, 02 Jun 22 16:58:35 +0000"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><link xlink:href="&url.rfc;850">RFC 850</link></entry>
|
|
<entry>"Thursday, 02-Jun-22 16:58:35 UTC"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><link xlink:href="&url.rfc;1036">RFC 1036</link></entry>
|
|
<entry>"Thu, 02 Jun 22 16:58:35 +0000"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><link xlink:href="&url.rfc;1123">RFC 1123</link></entry>
|
|
<entry>"Thu, 02 Jun 2022 16:58:35 +0000"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><link xlink:href="&url.rfc;2822">RFC 2822</link></entry>
|
|
<entry>"Thu, 02 Jun 2022 16:58:35 +0000"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><link xlink:href="&url.rfc;3339">RFC 3339</link></entry>
|
|
<entry>"2022-06-02T16:58:35+00:00"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><link xlink:href="&url.rfc;3339">RFC 3339</link> Extended</entry>
|
|
<entry>"2022-06-02T16:58:35.698+00:00"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><link xlink:href="&url.rfc;7231">RFC 7231</link></entry>
|
|
<entry>"Thu, 02 Jun 2022 16:58:35 GMT"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>RSS</entry>
|
|
<entry>"Thu, 02 Jun 2022 16:58:35 +0000"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>W3C</entry>
|
|
<entry>"2022-06-02T16:58:35+00:00"</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<table>
|
|
<title>Notaciones localizadas</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Descripción</entry>
|
|
<entry>Formato</entry>
|
|
<entry>Ejemplos</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Mes americano y día</entry>
|
|
<entry><literal>mm</literal> "/" <literal>dd</literal></entry>
|
|
<entry>"5/12", "10/27"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Mes americano, día y año</entry>
|
|
<entry><literal>mm</literal> "/" <literal>dd</literal> "/" <literal>y</literal></entry>
|
|
<entry>"12/22/78", "1/17/2006", "1/17/6"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año de cuatro dígitos, mes y día con slashes</entry>
|
|
<entry><literal>YY</literal> "/" <literal>mm</literal> "/" <literal>dd</literal></entry>
|
|
<entry>"2008/6/30", "1978/12/22"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año de cuatro dígitos y mes (GNU)</entry>
|
|
<entry><literal>YY</literal> "-" <literal>mm</literal></entry>
|
|
<entry>"2008-6", "2008-06", "1978-12"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año, mes y día con guiones</entry>
|
|
<entry><literal>y</literal> "-" <literal>mm</literal> "-" <literal>dd</literal></entry>
|
|
<entry>"2008-6-30", "78-12-22", "8-6-21"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Día, mes y año de dos dígitos, con puntos, tabulaciones o guiones</entry>
|
|
<entry><literal>dd</literal> [.\t-] <literal>mm</literal> [.-] <literal>YY</literal></entry>
|
|
<entry>"30-6-2008", "22.12.1978"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Día, mes y año de dos dígitos, con puntos o tabulaciones</entry>
|
|
<entry><literal>dd</literal> [.\t] <literal>mm</literal> "." <literal>yy</literal></entry>
|
|
<entry>"30.6.08", "22\t12.78"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Día, mes textual y año</entry>
|
|
<entry><literal>dd</literal> ([ \t.-])* <literal>m</literal> ([ \t.-])* <literal>y</literal></entry>
|
|
<entry>"30-June 2008", "22DEC78", "14 III 1879"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Mes textual y año de cuatro dígitos (el día será el 1)</entry>
|
|
<entry><literal>m</literal> ([ \t.-])* <literal>YY</literal></entry>
|
|
<entry>"June 2008", "DEC1978", "March 1879"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año de cuatro dígitos y mes textual (el día será el 1)</entry>
|
|
<entry><literal>YY</literal> ([ \t.-])* <literal>m</literal></entry>
|
|
<entry>"2008 June", "1978-XII", "1879.MArCH"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Mes textual, día y año</entry>
|
|
<entry><literal>m</literal> ([ .\t-])* <literal>dd</literal> [,.stndrh\t ]+ <literal>y</literal></entry>
|
|
<entry>"July 1st, 2008", "April 17, 1790", "May.9,78"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Mes textual y día</entry>
|
|
<entry><literal>m</literal> ([ .\t-])* <literal>dd</literal> [,.stndrh\t ]*</entry>
|
|
<entry>"July 1st,", "Apr 17", "May.9"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Día y mes textual</entry>
|
|
<entry><literal>dd</literal> ([ .\t-])* <literal>m</literal></entry>
|
|
<entry>"1 July", "17 Apr", "9.May"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Mes abreviado, día y año</entry>
|
|
<entry><literal>M</literal> "-" <literal>DD</literal> "-" <literal>y</literal></entry>
|
|
<entry>"May-09-78", "Apr-17-1790"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año, mes abreviado y día</entry>
|
|
<entry><literal>y</literal> "-" <literal>M</literal> "-" <literal>DD</literal></entry>
|
|
<entry>"78-Dec-22", "1814-MAY-17"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año (y solo el año)</entry>
|
|
<entry><literal>YY</literal></entry>
|
|
<entry>"1978", "2008"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año (desarrollado, 5-19 dígitos con signo)</entry>
|
|
<entry>[+-] <literal>YYY</literal></entry>
|
|
<entry>"-81120", "+20192"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Mes textual (y solo el mes)</entry>
|
|
<entry><literal>m</literal></entry>
|
|
<entry>"March", "jun", "DEC"</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<table>
|
|
<title>Notaciones ISO8601</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Descripción</entry>
|
|
<entry>Formato</entry>
|
|
<entry>Ejemplos</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Año, mes y día de ocho dígitos</entry>
|
|
<entry><literal>YY</literal> <literal>MM</literal> <literal>DD</literal></entry>
|
|
<entry>"15810726", "19780417", "18140517"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año de cuatro dígitos, mes y día con slashes</entry>
|
|
<entry><literal>YY</literal> "/" <literal>MM</literal> "/" <literal>DD</literal></entry>
|
|
<entry>"2008/06/30", "1978/12/22"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año de dos dígitos, mes y día con guiones</entry>
|
|
<entry><literal>yy</literal> "-" <literal>MM</literal> "-" <literal>DD</literal></entry>
|
|
<entry>"08-06-30", "78-12-22"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año de cuatro dígitos con signo opcional, mes y día</entry>
|
|
<entry>[+-]? <literal>YY</literal> "-" <literal>MM</literal> "-" <literal>DD</literal></entry>
|
|
<entry>"-0002-07-26", "+1978-04-17", "1814-05-17"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año de cinco dígitos con signo, mes y día requeridos</entry>
|
|
<entry>[+-] <literal>YYY</literal> "-" <literal>MM</literal> "-" <literal>DD</literal></entry>
|
|
<entry>"-81120-02-26", "+20192-04-17"</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<note>
|
|
<para>
|
|
Para los formatos <literal>y</literal> y <literal>yy</literal>, los años
|
|
antes de 100 son considerados de una manera especial cuando los
|
|
símbolos <literal>y</literal> o <literal>yy</literal> son utilizados.
|
|
Si el año está entre 0 (inclusivo) y 69 (inclusivo),
|
|
2000 será añadido. Si el año está entre 70 (inclusivo) y
|
|
99 (inclusivo) entonces 1900 será añadido. Esto significa que "00-01-01" es
|
|
interpretado como "2000-01-01".
|
|
</para>
|
|
</note>
|
|
|
|
<note>
|
|
<para>
|
|
El formato "Día, mes y año de dos dígitos con tabulaciones o puntos"
|
|
(<literal>dd</literal> [.\t] <literal>mm</literal> "."
|
|
<literal>yy</literal>) solo funciona para valores de año de 61 (inclusivo)
|
|
a 99 (inclusivo) - fuera de estos límites, el <emphasis>formato de tiempo</emphasis>
|
|
"<literal>HH</literal> [.:] <literal>MM</literal> [.:] <literal>SS</literal>" tiene una
|
|
precedencia más fuerte y prima.
|
|
</para>
|
|
</note>
|
|
|
|
<note>
|
|
<para>
|
|
El formato "Año (y solo el año)" solo funciona de manera fiable si una cadena
|
|
de tiempo ya ha sido encontrada. De lo contrario, si el año de cuatro dígitos coincide
|
|
con <literal>HH</literal> <literal>MM</literal>, estos dos elementos de fecha
|
|
son definidos en su lugar.
|
|
</para>
|
|
<para>
|
|
Para analizar de manera coherente solo un año, utilice
|
|
<function>DateTimeImmutable::createFromFormat</function> con el
|
|
especificador <literal>Y</literal>.
|
|
</para>
|
|
</note>
|
|
|
|
<caution>
|
|
<para>
|
|
Es posible añadir o restar un préstamo para los formatos
|
|
<literal>dd</literal> y <literal>DD</literal>. El día 0 significa el último
|
|
día del mes anterior, los préstamos positivos contarán el mes siguiente.
|
|
Así, "2008-08-00" es equivalente a "2008-07-31" y "2008-06-31" es equivalente
|
|
a "2008-07-01" (junio solo tiene 30 días).
|
|
</para>
|
|
<para>
|
|
Es de notar que el rango de día está limitado a 0-31 como
|
|
indicado por la expresión regular anterior. Así, "2008-06-32" no es
|
|
una cadena de fecha válida, por ejemplo.
|
|
</para>
|
|
<para>
|
|
También es posible jugar con los préstamos de los formatos <literal>mm</literal> y
|
|
<literal>MM</literal> gracias al valor 0. Un valor de mes de 0 significa Diciembre
|
|
del año anterior. Por ejemplo "2008-00-22" es equivalente a "2007-12-22".
|
|
</para>
|
|
<para>
|
|
Si combina las dos nociones anteriores y utiliza un préstamo negativo en el día
|
|
y el mes, entonces ocurre esto: "2008-00-00" es convertido primero hacia
|
|
"2007-12-00" luego hacia "2007-11-30". Esto también ocurre con la cadena
|
|
"0000-00-00" que es entonces transformada hacia "-0001-11-30" (el año -1 en el calendario
|
|
ISO 8601, que es 2 BC en el calendario Gregoriano).
|
|
</para>
|
|
</caution>
|
|
</sect1>
|
|
<!--}}}-->
|
|
|
|
<!--Compound Formats: {{{-->
|
|
<sect1 annotations="chunk:false" xml:id="datetime.formats.compound">
|
|
<title>Formats compuestos</title>
|
|
|
|
<para>
|
|
Esta página describe los diferentes formatos en una sintaxis de tipo BNF que los analizadores de
|
|
<classname>DateTimeImmutable</classname>, <classname>DateTime</classname>,
|
|
<function>date_create</function>,
|
|
<function>date_create_immutable</function>, y
|
|
<function>strtotime</function> comprenden.
|
|
</para>
|
|
<para>
|
|
Para formatear objetos <classname>DateTimeImmutable</classname> y
|
|
<classname>DateTime</classname>, por favor refiérase a la documentación
|
|
del método <function>DateTimeInterface::format</function>.
|
|
</para>
|
|
|
|
<table>
|
|
<title>Símbolos utilizados</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Descripción</entry>
|
|
<entry>Formats</entry>
|
|
<entry>Ejemplos</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>DD</literal></entry>
|
|
<entry>"0" [0-9] | [1-2][0-9] | "3" [01]</entry>
|
|
<entry>"02", "12", "31"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>doy</literal></entry>
|
|
<entry>"00"[1-9] | "0"[1-9][0-9] | [1-2][0-9][0-9] | "3"[0-5][0-9] | "36"[0-6]</entry>
|
|
<entry>"001", "012", "180", "350", "366"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>frac</literal></entry>
|
|
<entry>. [0-9]+</entry>
|
|
<entry>".21342", ".85"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>hh</literal></entry>
|
|
<entry>"0"?[1-9] | "1"[0-2]</entry>
|
|
<entry>"04", "7", "12"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>HH</literal></entry>
|
|
<entry>[01][0-9] | "2"[0-4]</entry>
|
|
<entry>"04", "07", "19"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>meridiem</literal></entry>
|
|
<entry>[AaPp] .? [Mm] .? [\0\t ]</entry>
|
|
<entry>"A.m.", "pM", "am."</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>ii</literal></entry>
|
|
<entry>[0-5]?[0-9]</entry>
|
|
<entry>"04", "8", "59"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>II</literal></entry>
|
|
<entry>[0-5][0-9]</entry>
|
|
<entry>"04", "08", "59"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>M</literal></entry>
|
|
<entry>'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec'</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>MM</literal></entry>
|
|
<entry>[0-1][0-9]</entry>
|
|
<entry>"00", "12"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>espacio</literal></entry>
|
|
<entry>[ \t]</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>ss</literal></entry>
|
|
<entry>([0-5]?[0-9])|60</entry>
|
|
<entry>"04", "8", "59", "60" (segundo intercalar)</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>SS</literal></entry>
|
|
<entry>[0-5][0-9]</entry>
|
|
<entry>"04", "08", "59"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>W</literal></entry>
|
|
<entry>"0"[1-9] | [1-4][0-9] | "5"[0-3]</entry>
|
|
<entry>"05", "17", "53"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>tzcorrection</literal></entry>
|
|
<entry>"GMT"? [+-] <literal>hh</literal> ":"? <literal>II</literal>?</entry>
|
|
<entry>"+0400", "GMT-07:00", "-07:00"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>YY</literal></entry>
|
|
<entry>[0-9]{4}</entry>
|
|
<entry>"2000", "2008", "1978"</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<table>
|
|
<title>Notaciones localizadas</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Descripción</entry>
|
|
<entry>Formato</entry>
|
|
<entry>Ejemplos</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>Formato de log común</entry>
|
|
<entry><literal>dd</literal> "/" <literal>M</literal> "/" <literal>YY</literal> : <literal>HH</literal> ":" <literal>II</literal> ":" <literal>SS</literal> <literal>espacio</literal> <literal>tzcorrection</literal></entry>
|
|
<entry>"10/Oct/2000:13:55:36 -0700"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>EXIF</entry>
|
|
<entry><literal>YY</literal> ":" <literal>MM</literal> ":" <literal>DD</literal> " " <literal>HH</literal> ":" <literal>II</literal> ":" <literal>SS</literal></entry>
|
|
<entry>"2008:08:07 18:11:31"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año ISO con semana ISO</entry>
|
|
<entry><literal>YY</literal> "-"? "W" <literal>W</literal></entry>
|
|
<entry>"2008W27", "2008-W28"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Año ISO con semana ISO y día</entry>
|
|
<entry><literal>YY</literal> "-"? "W" <literal>W</literal> "-"? [0-7]</entry>
|
|
<entry>"2008W273", "2008-W28-3"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>MySQL</entry>
|
|
<entry><literal>YY</literal> "-" <literal>MM</literal> "-" <literal>DD</literal> " " <literal>HH</literal> ":" <literal>II</literal> ":" <literal>SS</literal></entry>
|
|
<entry>"2008-08-07 18:11:31"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>PostgreSQL: Año con día del año</entry>
|
|
<entry><literal>YY</literal> "."? <literal>doy</literal></entry>
|
|
<entry>"2008.197", "2008197"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>SOAP</entry>
|
|
<entry><literal>YY</literal> "-" <literal>MM</literal> "-" <literal>DD</literal> "T" <literal>HH</literal> ":" <literal>II</literal> ":" <literal>SS</literal> <literal>frac</literal> <literal>tzcorrection</literal>?</entry>
|
|
<entry>"2008-07-01T22:35:17.02", "2008-07-01T22:35:17.03+08:00"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Timestamp Unix</entry>
|
|
<entry>"@" "-"? [0-9]+</entry>
|
|
<entry>"@1215282385"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>Timestamp Unix con microsegundos</entry>
|
|
<entry>"@" "-"? [0-9]+ "." [0-9]{0,6}</entry>
|
|
<entry>"@1607974647.503686"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>XMLRPC</entry>
|
|
<entry><literal>YY</literal> <literal>MM</literal> <literal>DD</literal> "T" <literal>hh</literal> ":" <literal>II</literal> ":" <literal>SS</literal></entry>
|
|
<entry>"20080701T22:38:07", "20080701T9:38:07"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>XMLRPC (Compacto)</entry>
|
|
<entry><literal>YY</literal> <literal>MM</literal> <literal>DD</literal> 't' <literal>hh</literal> <literal>II</literal> <literal>SS</literal></entry>
|
|
<entry>"20080701t223807", "20080701T093807"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>WDDX</entry>
|
|
<entry><literal>YY</literal> "-" <literal>mm</literal> "-" <literal>dd</literal> "T" <literal>hh</literal> ":" <literal>ii</literal> ":" <literal>ss</literal></entry>
|
|
<entry>"2008-7-1T9:3:37"</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<note>
|
|
<para>
|
|
El "W" en los formatos "Año ISO con semana ISO" y "Año ISO con semana ISO y día"
|
|
es sensible a la mayúscula/minúscula; solo puede utilizarse la mayúscula "W".
|
|
</para>
|
|
<para>
|
|
El "T" en los formatos SOAP, XMRPC y WDDX es sensible a la mayúscula/minúscula; utilice siempre
|
|
la mayúscula "T".
|
|
</para>
|
|
<para>
|
|
El formato timestamp Unix define la zona horaria a UTC.
|
|
</para>
|
|
</note>
|
|
</sect1>
|
|
<!--}}}-->
|
|
|
|
<!--Relative Formats: {{{-->
|
|
<sect1 annotations="chunk:false" xml:id="datetime.formats.relative">
|
|
<title>Formats relativos</title>
|
|
|
|
<para>
|
|
Esta página describe los diferentes formatos en una sintaxis de tipo BNF
|
|
que los analizadores de <classname>DateTimeImmutable</classname>,
|
|
<classname>DateTime</classname>, <function>date_create</function>,
|
|
<function>date_create_immutable</function>, y
|
|
<function>strtotime</function> comprenden.
|
|
</para>
|
|
<para>
|
|
Para formatear objetos <classname>DateTimeImmutable</classname> y
|
|
<classname>DateTime</classname>, por favor refiérase a la documentación
|
|
del método <function>DateTimeInterface::format</function>.
|
|
</para>
|
|
|
|
<table>
|
|
<title>Símbolos utilizados</title>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>Descripción</entry>
|
|
<entry>Formato</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry><literal>dayname</literal></entry>
|
|
<entry>'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' |
|
|
'friday' | 'saturday' | 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' |
|
|
'sat'</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>daytext</literal></entry>
|
|
<entry>'weekday' | 'weekdays'</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>number</literal></entry>
|
|
<entry>[+-]?[0-9]+</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>ordinal</literal></entry>
|
|
<entry>'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' |
|
|
'seventh' | 'eighth' | 'ninth' | 'tenth' | 'eleventh' | 'twelfth' |
|
|
'next' | 'last' | 'previous' | 'this'</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>reltext</literal></entry>
|
|
<entry>'next' | 'last' | 'previous' | 'this'</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>espacio</literal></entry>
|
|
<entry>[ \t]+</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>unit</literal></entry>
|
|
<entry>'ms' | 'µs' | (( 'msec' | 'millisecond' | 'µsec' | 'microsecond'
|
|
| 'usec' | 'sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' |
|
|
'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' |
|
|
<literal>daytext</literal>
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<table>
|
|
<title>Notaciones basadas en el día</title>
|
|
<tgroup cols="3">
|
|
<thead>
|
|
<row>
|
|
<entry>Formato</entry>
|
|
<entry>Descripción</entry>
|
|
<entry>Ejemplos</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>'yesterday'</entry>
|
|
<entry>Medianoche de ayer</entry>
|
|
<entry>"yesterday 14:00"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>'midnight'</entry>
|
|
<entry>El tiempo es puesto a 00:00:00</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry>'today'</entry>
|
|
<entry>El tiempo es puesto a 00:00:00</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry>'now'</entry>
|
|
<entry>Ahora</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry>'noon'</entry>
|
|
<entry>El tiempo es puesto a 12:00:00</entry>
|
|
<entry>"yesterday noon"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>'tomorrow'</entry>
|
|
<entry>Medianoche de mañana</entry>
|
|
<entry></entry>
|
|
</row>
|
|
<row>
|
|
<entry>'back of' <literal>hour</literal></entry>
|
|
<entry>15 minutos antes de la hora especificada</entry>
|
|
<entry>"back of 7pm", "back of 15"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>'front of' <literal>hour</literal></entry>
|
|
<entry>15 minutos después de la hora especificada</entry>
|
|
<entry>"front of 5am", "front of 23"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>'first day of'?</entry>
|
|
<entry>Asigna el día del primer día del mes actual. Generalmente es preferible
|
|
utilizar esta expresión con el nombre del mes que sigue, ya que solo se refiere al mes actual.</entry>
|
|
<entry>"first day of January 2008"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>'last day of'?</entry>
|
|
<entry>Asigna el día del último día del mes actual. Generalmente es preferible
|
|
utilizar esta expresión con el nombre del mes que sigue, ya que solo se refiere al mes actual.</entry>
|
|
<entry>"last day of next month"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>ordinal</literal> <literal>espacio</literal> <literal>dayname</literal> <literal>espacio</literal> 'of'</entry>
|
|
<entry>Calcula el <literal>x</literal>-ésimo día de la semana del mes actual.</entry>
|
|
<entry>"first sat of July 2008"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>'last' <literal>espacio</literal> <literal>dayname</literal> <literal>espacio</literal> 'of'</entry>
|
|
<entry>Calcula el <emphasis>último</emphasis> día de la semana del mes actual.</entry>
|
|
<entry>"last sat of July 2008"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>number</literal> <literal>espacio</literal>? (<literal>unit</literal> | 'week')</entry>
|
|
<entry>Maneja tiempos relativos cuyo valor es numerado.</entry>
|
|
<entry>"+5 weeks", "12 day", "-7 weekdays"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>(<literal>ordinal</literal> | <literal>reltext</literal>) <literal>espacio</literal> <literal>unit</literal></entry>
|
|
<entry>Maneja elementos temporales relativos cuyo valor es textual.
|
|
<literal>last</literal> y <literal>previous</literal> son equivalentes a
|
|
<literal>-1</literal>, <literal>this</literal> a 0, y <literal>next</literal> a
|
|
<literal>+1</literal>.</entry>
|
|
<entry>"fifth day", "second month", "last day", "previous year"</entry>
|
|
</row>
|
|
<row>
|
|
<entry>'ago'</entry>
|
|
<entry>Utiliza en el pasado cualquier descripción de tiempo relativo ('hace').</entry>
|
|
<entry>"2 days ago", "8 days ago 14:00", "2 months 5 days ago", "2 months ago 5 days", "2 days ago"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>dayname</literal></entry>
|
|
<entry>Se mueve hacia el próximo día indicado.(Ver <link
|
|
linkend="datetime.formats.relative.dayname-note">nota</link>)</entry>
|
|
<entry>"Monday"</entry>
|
|
</row>
|
|
<row>
|
|
<entry><literal>reltext</literal> <literal>espacio</literal> 'week'</entry>
|
|
<entry>Maneja el formato especial "weekday + last/this/next week".</entry>
|
|
<entry>"Monday next week"</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</table>
|
|
|
|
<note>
|
|
<para>
|
|
Las expresiones relativas son siempre tratadas <emphasis>después</emphasis>
|
|
de las expresiones no relativas. Esto hace que "+1 week july 2008" y "july
|
|
2008 +1 week" sean equivalentes.
|
|
</para>
|
|
<para>
|
|
"yesterday", "midnight", "today", "noon" y "tomorrow" son excepciones a esta
|
|
regla. Note que "tomorrow 11:00" y "11:00 tomorrow" son diferentes. Si la fecha
|
|
de hoy es "July 23rd, 2008", la primera expresión da "2008-07-24 11:00"
|
|
mientras que la segunda dará "2008-07-24 00:00". La razón es que estas cinco expresiones
|
|
influyen directamente en la fecha actual.
|
|
</para>
|
|
<para>
|
|
Las palabras clave como "first day of" dependen del contexto en el cual
|
|
la cadena de formato relativo es utilizada. Si se utiliza con un método
|
|
estático o una función, el referente es el timestamp actual del sistema.
|
|
Sin embargo, si se utiliza en <function>DateTime::modify</function> o
|
|
<function>DateTimeImmutable::modify</function>, el referente es el objeto
|
|
sobre el cual el método <literal>modify()</literal> es llamado.
|
|
</para>
|
|
</note>
|
|
|
|
<note>
|
|
<para xml:id="datetime.formats.relative.dayname-note">
|
|
Note las observaciones que siguen cuando el día de la semana actual es el mismo que el
|
|
día de la semana utilizado en la cadena fecha/hora. El día de la semana actual podría haber sido
|
|
recalculado con respecto a las partes no relativas de la cadena fecha/hora.
|
|
</para>
|
|
<orderedlist>
|
|
<listitem>
|
|
<simpara>
|
|
"<literal>dayname</literal>" no avanza <emphasis>hacia</emphasis> otro
|
|
día. (Ejemplo: "Wed July 23rd, 2008" significa "2008-07-23").
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
"<literal>number</literal> <literal>dayname</literal>" no avanza
|
|
<emphasis>hacia</emphasis> otro día. (Ejemplo: "1
|
|
wednesday july 23rd, 2008" significa "2008-07-23").
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
"<literal>number</literal> week <literal>dayname</literal>" añadirá
|
|
primero el número de semanas, pero no avanzará <emphasis>hacia</emphasis>
|
|
otro día. En este caso "<literal>number</literal>
|
|
week" y "<literal>dayname</literal>" son dos bloques distintos.
|
|
(Ejemplo: "+1 week wednesday july 23rd, 2008" significa "2008-07-30").
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
"<literal>ordinal</literal> <literal>dayname</literal>"
|
|
<emphasis>avanza</emphasis> hacia otro día. (Ejemplo: "first
|
|
wednesday july 23rd, 2008" significa "2008-07-30").
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
"<literal>number</literal> week <literal>ordinal</literal>
|
|
<literal>dayname</literal>" añadirá primero el número de semanas
|
|
y luego <emphasis>avanzará</emphasis> hacia otro día.
|
|
En este caso, "<literal>number</literal> week" y
|
|
"<literal>ordinal</literal> <literal>dayname</literal>" son dos bloques
|
|
distintos. (Ejemplo: "+1 week first wednesday july 23rd,
|
|
2008" significa "2008-08-06").
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
"<literal>ordinal</literal> <literal>dayname</literal> 'of' "
|
|
no avanza <emphasis>hacia</emphasis> otro día. (Ejemplo:
|
|
"first wednesday of july 23rd, 2008" significa "2008-07-02" ya que la frase
|
|
con 'of' resetea el día del mes hacia '1' y el '23' será ignorado).
|
|
</simpara>
|
|
</listitem>
|
|
</orderedlist>
|
|
<para>
|
|
Note también que el "of" en "<literal>ordinal</literal>
|
|
<literal>espacio</literal> <literal>dayname</literal>
|
|
<literal>espacio</literal> 'of' " y "'last' <literal>espacio</literal>
|
|
<literal>dayname</literal> <literal>espacio</literal> 'of' " hace algo especial.
|
|
</para>
|
|
<orderedlist>
|
|
<listitem>
|
|
<simpara>
|
|
Asigna el día del mes a 1.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
"<literal>ordinal</literal> <literal>dayname</literal> 'of' " no avanza
|
|
<emphasis>hacia</emphasis> otro día. (Ejemplo: "first
|
|
tuesday of july 2008" significa "2008-07-01").
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
"<literal>ordinal</literal> <literal>dayname</literal> "
|
|
<emphasis>avanza</emphasis> hacia otro día. (Ejemplo: "first
|
|
tuesday july 2008" significa "2008-07-08", ver también el punto número
|
|
4 de la lista anterior).
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
"'last' <literal>dayname</literal> 'of' " toma el último
|
|
<literal>dayname</literal> del mes actual. (Ejemplo: "last
|
|
wed of july 2008" significa "2008-07-30")
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
"'last' <literal>dayname</literal>" toma el último
|
|
<literal>dayname</literal> a partir del día actual. (Ejemplo: "last
|
|
wed july 2008" significa "2008-06-25"; "july 2008" asigna primero la fecha actual
|
|
a "2008-07-01" y luego "last wed" retrocede al último miércoles que es el
|
|
"2008-06-25").
|
|
</simpara>
|
|
</listitem>
|
|
</orderedlist>
|
|
</note>
|
|
<note>
|
|
<para>
|
|
Los valores relativos de los meses calculados se basan en el número de días de los meses que
|
|
se utilizan. Por ejemplo, "+2 month 2011-11-30", dará como resultado la fecha "2012-01-30".
|
|
Esto se debe a que el mes de noviembre tiene 30 días, y
|
|
que el mes de diciembre tiene 31, lo que suma un total de 61 días.
|
|
</para>
|
|
</note>
|
|
<note>
|
|
<para>
|
|
<literal>number</literal> es un número <emphasis>entero</emphasis>; si un
|
|
número decimal es dado, el punto (o la coma) será probablemente interpretado
|
|
como un delimitador.
|
|
Por ejemplo, <literal>'+1.5 hours'</literal> será analizado como
|
|
<literal>'+1 5 hours'</literal>, y no como <literal>'+1 hour +30 minutes'</literal>.
|
|
</para>
|
|
</note>
|
|
|
|
<sect2 role="changelog">
|
|
&reftitle.changelog;
|
|
<para>
|
|
<informaltable>
|
|
<tgroup cols="2">
|
|
<thead>
|
|
<row>
|
|
<entry>&Version;</entry>
|
|
<entry>&Description;</entry>
|
|
</row>
|
|
</thead>
|
|
<tbody>
|
|
<row>
|
|
<entry>8.4.0</entry>
|
|
<entry>
|
|
<literal>number</literal> ahora acepta un signo más seguido de un
|
|
signo menos, por ejemplo <literal>+-2</literal>, y otras combinaciones
|
|
de varios signos.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>8.2.0</entry>
|
|
<entry>
|
|
<literal>number</literal> ya no acepta un signo más seguido de un
|
|
signo menos, ejemplo <literal>+-2</literal>.
|
|
</entry>
|
|
</row>
|
|
<row>
|
|
<entry>7.0.8</entry>
|
|
<entry>
|
|
Las semanas siempre comienzan el lunes. Antes, el domingo también era
|
|
considerado para comenzar una semana.
|
|
</entry>
|
|
</row>
|
|
</tbody>
|
|
</tgroup>
|
|
</informaltable>
|
|
</para>
|
|
</sect2>
|
|
</sect1>
|
|
<!--}}}-->
|
|
|
|
</chapter>
|
|
|
|
<!-- 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=marker fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|