the "yeer-week-weekday" format also works, at least whit strtotime().
exemple Saturday the 17 week in 2011:
<?php echo date("Y-m-d", strtotime("2011-W17-6")) . "\n"; ?>
Formatos de Fecha
| Descripción | Formato | Ejemplos |
|---|---|---|
| sufijos de día (en inglés) | "st" | "nd" | "rd" | "th" | |
| dd | ([0-2]?[0-9] | "3"[01]) sufijos de día? | "7th", "22nd", "31" |
| DD | "0" [0-9] | [1-2][0-9] | "3" [01] | "07", "31" |
| m | '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" | |
| M | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' | |
| mm | "0"? [0-9] | "1"[0-2] | "0", "04", "7", "12" |
| MM | "0" [0-9] | "1"[0-2] | "00", "04", "07", "12" |
| y | [0-9]{1,4} | "00", "78", "08", "8", "2008" |
| yy | [0-9]{2} | "00", "08", "78" |
| YY | [0-9]{4} | "2000", "2008", "1978" |
| Descripción | Formato | Ejemplos |
|---|---|---|
| Mes y día americanos | mm "/" dd | "5/12", "10/27" |
| Mes, día y año americanos | mm "/" dd "/" y | "12/22/78", "1/17/2006", "1/17/6" |
| Año de cuatro dígitos, mes y día con baras | YY "/" mm "/" dd | "2008/6/30", "1978/12/22" |
| Año de cuatro dígitos y mes (GNU) | YY "-" mm | "2008-6", "2008-06", "1978-12" |
| Año, mes y día con guiones | y "-" mm "-" dd | "2008-6-30", "78-12-22", "8-6-21" |
| Día, mes y año de cuatro dígitos, con puntos, tabulaciones o guiones | dd [.\t-] mm [.-] YY | "30-6-2008", "22.12\t1978" |
| Día, mes y año de dos dígitos, con puntos o tabulaciones | dd [.\t] mm "." yy | "30.6.08", "22\t12\t78" |
| Día, mes textual y año | dd ([ \t.-])* m ([ \t.-])* y | "30-June 2008", "22DEC78", "14 III 1879" |
| Mes textual y año de cuatro dígitos (Día se restablece a 1) | m ([ \t.-])* YY | "June 2008", "DEC1978", "March 1879" |
| Año de cuatro dígitos y mes textual (Día se restablece a 1) | YY ([ \t.-])* m | "2008 June", "1978-XII", "1879.MArCH" |
| Mes textual, día y año | m ([ .\t-])* dd [,.stndrh\t ]+ y | "July 1st, 2008", "April 17, 1790", "May.9,78" |
| Mes textual y día | m ([ .\t-])* dd [,.stndrh\t ]* | "July 1st,", "Apr 17", "May.9" |
| Día y mes textual | d ([ .\t-])* m | "1 July", "17 Apr", "9.May" |
| Abreviatura de mes, día y año | M "-" DD "-" y | "May-09-78", "Apr-17-1790" |
| Año, abreviatura de mes y día | y "-" M "-" DD | "78-Dec-22", "1814-MAY-17" |
| Año (y sólo el año) | YY | "1978", "2008" |
| Mes textual (y sólo el mes) | m | "March", "jun", "DEC" |
| Descripción | Formato | Ejemplos |
|---|---|---|
| Año, mes y día, de ocho dígitos | YY MM DD | "15810726", "19780417", "18140517" |
| Año de cuatro dígitos, mes y día con barras | YY "/" MM "/" DD | "2008/06/30", "1978/12/22" |
| Año de dos dígitos, mes y dís con barras | yy "-" MM "-" DD | "08-06-30", "78-12-22" |
| Año de cuatro dígitos con signo opcional, mes y día | [+-]? YY "-" MM "-" DD | "-0002-07-26", "+1978-04-17", "1814-05-17" |
Nota:
Para los formatos y e yy, los años por debajo de 100 son tratados de manera especial cuando se usan los símbolos y o yy. Si el año cae en el rango de 0 (inclusive) a 69 (inclusive), se añade 2000. Si el año cae en el rango de 70 (inclusive) a 99 (inclusive) se añade entonces 1900. Esto significa que "00-01-01" se interpreta como "2000-01-01".
Nota:
El formato "Día, mes y año de dos dígitos, con puntos o tabulaciones" (dd [.\t] mm "." yy) solamente funciona con valores de años de 61 (inclusive) a 99 (inclusive) - fuera de esos años el formato de hora "HH [.:] MM [.:] SS" tiene precedencia.
Nota:
El formato "Año (y sólo el año)" solamente funciona si se encotró ya una cadena de hora -- de otro modo este formato es reconocido como HH MM.
Nota:
Es posible poner en exceso y en defecto los formatos dd y DD. Día 0 significa el último día del mes anterios, mientras en exceso empieza a contar desde el mes siguiente. Esto hace que "2008-08-00" equivalga a "2008-07-31" y "2008-06-31" sea equivalente a "2008-07-01" (junio tiene sólo 30 días).
También es posible poner en defecto los formatos mm y MM con el valor 0. Un valor de mes de 0 significa diciemebre del año anterior. Como ejemplo "2008-00-22" es equivalente a "2007-12-22".
Si se combinan los dos hechos anteriores y se ponen por defecto el día y el mes, sucede lo siguiente: "2008-00-00" primero se convierte a "2007-12-00" que después se convierte a "2007-11-30". Esto también sucede con la cadena "0000-00-00", que se transforma en "-0001-11-30" (el año -1 en el calendario ISO 8601, el cuál es 2 A.C. en el calendario gregoriano "proléptico").
Within the formats listed under localized notations, all of the periods within brackets should be escaped as they match actual periods and not the regex "any character".
There's a very big difference between [.\t] and [\.\t].
you can also do:
<?php date("Y-m-d", strtotime("2011-W17 Saturday")) . "\n"; ?>
