weeknummer-jaar-naar-datum
Gesponsorde koppelingen
PHP script bestanden
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
function getDateFromWeek($iWeek, $iYear , $iDayofweek = 1)
{
$iRandomDate = mktime(0, 0, 0, 3, 1, $iYear);
$iMonday = mktime(0, 0, 0, date('n', $iRandomDate), date('j', $iRandomDate)-(date('w', $iRandomDate)-1), $iYear);
$iFirstWeek = mktime(0, 0, 0, date('n', $iMonday), date('j', $iMonday) - 7*(date('W', $iMonday)-1), $iYear);
$myDate = mktime(0, 0, 0, date('n', $iFirstWeek), (date('j', $iFirstWeek) + 7 *($iWeek-1)+($iDayofweek -1)), date('Y', $iFirstWeek));
return date('Y-m-d',$myDate) ;
}
?>
function getDateFromWeek($iWeek, $iYear , $iDayofweek = 1)
{
$iRandomDate = mktime(0, 0, 0, 3, 1, $iYear);
$iMonday = mktime(0, 0, 0, date('n', $iRandomDate), date('j', $iRandomDate)-(date('w', $iRandomDate)-1), $iYear);
$iFirstWeek = mktime(0, 0, 0, date('n', $iMonday), date('j', $iMonday) - 7*(date('W', $iMonday)-1), $iYear);
$myDate = mktime(0, 0, 0, date('n', $iFirstWeek), (date('j', $iFirstWeek) + 7 *($iWeek-1)+($iDayofweek -1)), date('Y', $iFirstWeek));
return date('Y-m-d',$myDate) ;
}
?>
Voorbeeldje :
Code (php)
1
2
2
getDateFromWeek(24,2009); //returned de datum van de maandag van week 24 in 2009 2009-06-08
getDateFromWeek(24,2009,0); //returned de datum van de zondag van week 24 in 2009 2009-06-07
getDateFromWeek(24,2009,0); //returned de datum van de zondag van week 24 in 2009 2009-06-07
Standaard returned deze functie de maandag van die week. Het derde argument is optioneel een gelijk aan de return values van date('w') dus :
0 Zo
1 Ma
2 Di
3 Woe
4 Do
5 Vr
6 Za
Ik heb gekozen voor returnen in Y-m-d omdat bij mij de return values in een DB moeten.
PS: ook wel handig om te vermelden, je kan gewoon doornummeren, Je bijv dus ook de 62ste week van 2008 opvragen en dan kom je gewoon in 2009 uit.
Tevens werkt negatief nummeren ook. Dus als je week 0 opvraagt vraag je eigenlijk de laatste week uit het vorige jaar op. Lijkt me ideaal voor Kalenders ED
Klein dingetje om op te letten
Let er op dat dit script er vanuit gaat dat de week begint op zondag. Dus mocht je de week willen laten beginnen op maandag moet je de week ff ++en voordat je de zondag in je array mikt