date ('W') probléma
Sziasztok,
A date('W') segítségével a hét sorszámát tudhatjuk meg elvileg (az 1. hét az első hétfővel kezdődő hét).
Viszont az alábbi kódra elég érdekes eredményt kapok:Mégpedig ezt:
2000.01.01 =2000.52. hét *** 2000.12.31 =2000.52. hét
2001.01.01 =2001.01. hét *** 2001.12.31 =2001.01. hét
2002.01.01 =2002.01. hét *** 2002.12.31 =2002.01. hét
2003.01.01 =2003.01. hét *** 2003.12.31 =2003.01. hét
2004.01.01 =2004.01. hét *** 2004.12.31 =2004.53. hét
2005.01.01 =2005.53. hét *** 2005.12.31 =2005.52. hét
2006.01.01 =2006.52. hét *** 2006.12.31 =2006.52. hét
2007.01.01 =2007.01. hét *** 2007.12.31 =2007.01. hét
2008.01.01 =2008.01. hét *** 2008.12.31 =2008.01. hét
2009.01.01 =2009.01. hét *** 2009.12.31 =2009.53. hét
2010.01.01 =2010.53. hét *** 2010.12.31 =2010.52. hét
2011.01.01 =2011.52. hét *** 2011.12.31 =2011.52. hét
2012.01.01 =2012.52. hét *** 2012.12.31 =2012.01. hét
2013.01.01 =2013.01. hét *** 2013.12.31 =2013.01. hét
2014.01.01 =2014.01. hét *** 2014.12.31 =2014.01. hét
Találkoztatok már ezzel? Ez most bug vagy feature?
PHP Version 5.0.5-Debian-0.8~sarge1 (Debian GNU/Linux)
■ A date('W') segítségével a hét sorszámát tudhatjuk meg elvileg (az 1. hét az első hétfővel kezdődő hét).
Viszont az alábbi kódra elég érdekes eredményt kapok:
for ($i=2000; $i<2015; $i++) {
echo $i . ".01.01 =" . (date( "Y", mktime( 0, 0, 0, 1, 1, $i))) . "." . (date( "W", mktime( 0, 0, 0, 1, 1, $i))) . ". hét *** ";
echo $i . ".12.31 =" . (date( "Y", mktime( 0, 0, 0, 12, 31, $i))) . "." . (date( "W", mktime( 0, 0, 0, 12, 31, $i))) . ". hét<br>";
}
2000.01.01 =2000.52. hét *** 2000.12.31 =2000.52. hét
2001.01.01 =2001.01. hét *** 2001.12.31 =2001.01. hét
2002.01.01 =2002.01. hét *** 2002.12.31 =2002.01. hét
2003.01.01 =2003.01. hét *** 2003.12.31 =2003.01. hét
2004.01.01 =2004.01. hét *** 2004.12.31 =2004.53. hét
2005.01.01 =2005.53. hét *** 2005.12.31 =2005.52. hét
2006.01.01 =2006.52. hét *** 2006.12.31 =2006.52. hét
2007.01.01 =2007.01. hét *** 2007.12.31 =2007.01. hét
2008.01.01 =2008.01. hét *** 2008.12.31 =2008.01. hét
2009.01.01 =2009.01. hét *** 2009.12.31 =2009.53. hét
2010.01.01 =2010.53. hét *** 2010.12.31 =2010.52. hét
2011.01.01 =2011.52. hét *** 2011.12.31 =2011.52. hét
2012.01.01 =2012.52. hét *** 2012.12.31 =2012.01. hét
2013.01.01 =2013.01. hét *** 2013.12.31 =2013.01. hét
2014.01.01 =2014.01. hét *** 2014.12.31 =2014.01. hét
Találkoztatok már ezzel? Ez most bug vagy feature?
PHP Version 5.0.5-Debian-0.8~sarge1 (Debian GNU/Linux)
hopsz elrontottam
Szóval, hogy lehet december 31.-ét tartalmazó hét az első hét egy évben?
Illetve, ha január 1. nem hétfőre esik, akkor annak logikusan 52. v 53. hétnek kell lennie, de nem így van...
első hét
Mintha rémlene, hogy az az 1. hét amikor szerda utáni napra esik elseje.
és ordít csütörtökül.
hopsz
ez a szabvány
vannak egyébként másfajta szabályok is.
lásd még: http://en.wikipedia.org/wiki/Week#Week_number, http://en.wikipedia.org/wiki/ISO_8601#Week_dates
ISO-8601
Az új év első csütörtökjét tartalmazó hét az év első hete. (tehát az új évből minimum 4 napot kell tartalmaznia az első 7nek).
Hétfő = 1
Kedd = 2
Szerda = 3
Csütörtök = 4
Péntek = 5
Szombat = 6
Vasárnap = 7
Eszerint:
2000.01.01 = 6 -> 52.hét (2 nap az új évben)
2001.01.01 = 1 -> 01.hét (7 nap az új évben)
2002.01.01 = 2 -> 01.hét (6 nap az új évben)
2003.01.01 = 3 -> 01.hét (5 nap az új évben)
2004.01.01 = 4 -> 01.hét (4 nap az új évben)
2005.01.01 = 6 -> 52.hét (2 nap az új évben)
2006.01.01 = 7 -> 52.hét (1 nap az új évben)
2007.01.01 = 1 -> 01.hét (7 nap az új évben)
Remélem tudtam segíteni
Köszi