Formatos de Fecha y Hora soportados
PHP Manual

Formatos Relativos

Esta página describe los diferentes formatos relativos de fecha/hora que entieden los analizadores de strtotime(), DateTime y date_create().

Símbolos Usados
Descripción Formato
nombre del día 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun'
texto de día 'weekday' | 'weekdays'
número [+-]?[0-9]+
ordinal 'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' | 'seventh' | 'eighth' | 'ninth' | 'tenth' | 'eleventh' | 'twelfth' | 'next' | 'last' | 'previous' | 'this'
texto relativo 'next' | 'last' | 'previous' | 'this'
espacio [ \t]+
unidad (('sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' | 'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' | texto de día
Notaciones Basadas en el Día
Formato Descripción Ejemplos
'yesterday' Medianoche de ayer "yesterday 14:00"
'midnight' La hora es establecida a 00:00:00  
'today' La hora es establecida a 00:00:00  
'now' Ahora - esto es simplemente ignorado  
'noon' La hora es establecida a 12:00:00 "yesterday noon"
'tomorrow' Medianoche de mañana  
'back of' hora 15 minutos después de la hora especificada "back of 7pm", "back of 15"
'front of' hora 15 minutos antes de la hora especificada "front of 5am", "front of 23"
'first day' ' of'? Esteblece el día al primer día del mes actual. Esta frase se usa mejor seguida de un nombre de mes. "first day of January 2008"
'last day' ' of'? Esteblece el día al último día del mes actual. Esta frase se usa mejor seguida de un nombre de mes. "last day of next month"
ordinal espacio nombre del día espacio 'of' Calcula el x-ésimo día de la semana del mes actual. "first sat of July 2008"
'last' espacio nombre del día espacio 'of' Calcula el último día de la semana del mes actual. "last sat of July 2008"
número espacio? (unidad | 'week') Trata elementos de hora relativos donde el valor es un número. "+5 weeks", "12 day", "-7 weekdays"
ordinal espacio unidad Trata elementos de hora relativos donde el valor es texto. "fifth day", "second month"
'ago' Anula todos los valores de los elementos de hora relativos encontrados anteriormente. "2 days ago", "8 days ago 14:00", "2 months 5 days ago", "2 months ago 5 days", "2 days ago ago"
nombre del día Avanza al siguiente día con este nombre. "Monday"
texto relativo espacio 'week' Trata el formato especial "weekday + last/this/next week". "Monday next week"

Nota:

Las declaraciones relativas son siempre procesadas después de las declaraciones no relativas. Esto hace que "+1 week july 2008" y "july 2008 +1 week" sean equivalentes.

Las excepciones a esta regla son: "yesterday", "midnight", "today", "noon" y "tomorrow". Téngase en cuenta que "tomorrow 11:00" y "11:00 tomorrow" son diferentes. Considerando la fecha de hoy como "July 23rd, 2008", el primero produce "2008-07-24 11:00" mientras que el segundo produce "2008-07-24 00:00". La razón de esto es que esas cinco declaraciones influyen directamente en el momento actual.

Nota:

Analice las siguiente observaciones cuando el día de la semana actual es el mismo que el día de la semana usado en la cadena de fecha/hora. Sin embargo, el día de la semana actual prodría haber sido (re-)calculado mediante partes no relativas de la cadena de fecha/hora.

  1. "nombre del día" no avanza a otro día. (Ejemplo: "Wed July 23rd, 2008" significa "2008-07-23").
  2. "número nombre del día" no avanza a otro día. (Ejemplo: "1 wednesday july 23rd, 2008" significa "2008-07-23").
  3. "número week nombre del día" añadirá primero el número de semanas, pero no avanzará a otro día. En este caso "número week" y "nombre del día" son dos bloques distintos. (Ejemplo: "+1 week wednesday july 23rd, 2008" significa "2008-07-30").
  4. "ordinal nombre del día" avanza a otro día. (Ejemplo "first wednesday july 23rd, 2008" significa "2008-07-30").
  5. "número week ordinal nombre del día" primero añadíra el número de semanas, y después avanzará a otro día. En este caso "número week" y "ordinal nombre del día" son dos bloques distintos. (Ejemplo: "+1 week first wednesday july 23rd, 2008" significa "2008-08-06").
  6. "ordinal nombre del día 'of' " no avanza a otro día. (Ejemplo: "first wednesday of july 23rd, 2008" significa "2008-07-02" ya que la frase específica con 'of' restablece el día del mes a '1' y el '23rd' aquí se ignora).

También observe que el "of" en "ordinal espacio nombre del día espacio 'of' " y "'last' espacio nombre del día espacio 'of' " hace algo especial.

  1. Establece el día del mes a 1.
  2. "ordinal nombre del día 'of' " no avanza a otro día. (Ejemplo: "first tuesday of july 2008" significa "2008-07-01").
  3. "ordinal nombre del día " avanza otro día. (Ejemplo: "first tuesday july 2008" significa "2008-07-08", véase también el punto 4 en la lista de arriba).
  4. "'last' nombre del día 'of' " toma el último nombre del día des mes actual. (Ejemplo: "last wed of july 2008" significa "2008-07-30")
  5. "'last' nombre del día" toma el último nombre del día desde el día actual. (Ejemplo: "last wed july 2008" significa "2008-06-25"; "july 2008" primero establece la fecha actual a "2008-07-01" y después "last wed" avanza al miércoles anterior, que es "2008-06-25").

Nota:

Los valores relativos al mes se calculan basándose en la longitud de los meses por que los que pasan. Un ejemplo sería "+2 month 2011-11-30", el cual produciría "2012-01-30". Esto es debido a que noviembre tiene 30 días de longitud, y diciembre tiene 31 días de longitud, produciendo un total de 61 días.


Formatos de Fecha y Hora soportados
PHP Manual