Hey allemaal, ik heb een script om de datum van de week, begin en eind datum te halen met het weeknummer. Alleen nu is het nieuwe jaar begonnen en is alles 1 dag opgeschoven. Kan iemand mij helpen ik zie de fout niet.

Het script:
<?
function DatumVanWeek($iWeek, $iYear)
{
// Get a random monday in the requested year
$iMonday = mktime(0, 0, 0, 3, 1, $iYear);
$iMonday = mktime(0, 0, 0, 3, 1-(date('w', $iMonday)-1), $iYear);
// Get the date of week 1
$iFirstWeek = mktime(0, 0, 0, 3, -7*(date('W', $iMonday)-1), $iYear);

$date = mktime(0, 0, 0, date('m', $iFirstWeek), date('d', $iFirstWeek) + 7*($iWeek-1), date('Y', $iFirstWeek));

$dag = date("d", $date) + 6;
$laatste = mktime(0,0,0,date("m", $date),$dag,date('Y'));

echo tijden($date, 'wedstrijden') . " - " . tijden($laatste, 'wedstrijden');
}
?>
@Jan: Om mezelf ook maar eens wat meer te verdiepen in strftime() strtotime() heb ik je script eens goed bekeken. Ik heb een aanpassing gemaakt aan de check die er in zit. De check doe ik nu op de donderdag i.p.v. de maandag en dat werkt goed. Hij is nu correct.

<?php
function ISOdates_from_weeknr ($weeknr, $year, $format = '%d-%m-%Y') {
$start = strtotime ('1 january ' . $year);
$week1 = strftime ('%V', $start);
while ($week1 != '01') {
$start += (7 * 24 * 3600);
$week1 = strftime ('%V', $start);
}
$timestamp_week = strtotime ('+' . ($weeknr - 1) . ' week', $start);
$weekdag = strftime ('%u', $timestamp_week);
$dagen_tot_begin_week = $weekdag - 1;
$dagen_tot_eind_week = 7 - $weekdag;
$checkdatum = strtotime ("-" . $dagen_tot_begin_week . " days + 3 days", $timestamp_week);
$check = strftime ('%V', $checkdatum);
if ($check == '01' && $weeknr > 52) {
echo 'ongeldig weeknummer voor dit jaar' . "\n";
return false;
}
$begindatum = strtotime ("-" . $dagen_tot_begin_week . " days", $timestamp_week);
$einddatum = strtotime ("+" . $dagen_tot_eind_week . " days", $timestamp_week);
return array (strftime ($format, $begindatum), strftime ($format, $einddatum));
}
?>

Edit: Tags vergeten.
Ik zie het. Mijn checkdatum zat op maandag en door er drie bij op te tellen komt hij op donderdag te liggen, waar hij hoort. Goed gedaan, SanThe!

Ondertussen staat mijn CSS tut online. Ben natuurlijk ook benieuwd naar jouw reactie.
Ik ga gelijk kijken.

Reageren