Hai,

Voor eens script heb ik het volgende nodig:

Bij een gegeven jaar en weeknummer (die uit het script volgt) moet ik de datum van de bijbehorende maandag en vrijdag weten.

Nu kan dit met de date-functie maar ik ben een beetje de draad kwijt mbt al zijn mogelijkheden en functies.

Wie kan me die uitleggen? Of heeft zoiets gewoon ligen?
Ik heb ooit iets gemaakt dat daar op lijkt.

Kijk hier eens
http://www.phphulp.nl/forum/showtopic.php?cat=12&id=64953&page=240

Ik zal eens zien of ik het op maat kan maken.


EDIT:
(een beetje quick and dirty ...)

<?php
$resultaat = jaar_weeknummer2maandag_vrijdag(2010, 7);

echo 'maandag: '. $resultaat['maandag'] .'<br/>';
echo 'vrijdag: '. $resultaat['vrijdag'] .'<br/>';

function jaar_weeknummer2maandag_vrijdag($jaar, $weeknummer) // voel je vrij om de functie te hernoemen
{
$eersteMaandag = getNextWeek($jaar.'-01-01');
$maandag = clone $eersteMaandag;
$i=0; // een beetje extra beveiliging, zodat er geen oneindige lus kan komen
while ($maandag->format('W') < $weeknummer && $i++<54)
{
$maandag->modify('+7 day');
}
$vrijdag = clone $maandag;
$vrijdag->modify('+4 day');
return array('maandag'=>$maandag->format('Y-m-d'), 'vrijdag'=>$vrijdag->format('Y-m-d') ) ;
}

function getNextWeek($datumstring="now") // return: komende maandag. Indien het nu maandag is, wordt de dag van vandaag teruggegeven. Haal eventueel lijn 8 weg indien je in dat geval toch de maandag daarop wil.
{
$m_next = new DateTime($datumstring);
$dag = ($m_next->format('N') > 0 ? $m_next->format('N') - 1 : 6 );
if ($dag > 0)
$m_next->modify('+'. (7 - $dag) .' day');
return $m_next;
}
?>

Reageren