weeknummer-jaar-naar-datum

Gesponsorde koppelingen

PHP script bestanden

  1. weeknummer-jaar-naar-datum

« Lees de omschrijving en reacties

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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) ;
    }

?>


Voorbeeldje :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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


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

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.