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');
}
?>
Yeppers die van jou SanThe werkt als een tierelier :-)

Geinig hoe jullie dit oplossen :-)
lissy schreef op 09.01.2006 14:42
Yeppers die van jou SanThe werkt als een tierelier :-)

Geinig hoe jullie dit oplossen :-)


Vergeet Willem vp niet. Die heeft het gemaakt, ik heb er slechts kleine foutjes uitgehaald.
Okidokie Willem het gaat SUPER!!!
Gewoon toppies :-)))))))
SanThe schreef op 09.01.2006 14:19
[quote=Jan Koehoorn schreef op 09.01.2006 13:57]Het bloed kruipt toch waar het niet gaan kan:


Mooi, maar dat van mij dus ook.
Het script is een stuk verbeterd. Maar nog niet perfect. Als ik nu week 53 van 2002 opvraag, geeft jouw script 30-12-2002 en 05-01-2003 en mijn (nou ja) script geeft Het jaar 2002 heeft geen week 53. En dat klopt want wat jij geeft is week 1 van 2003.[/quote]

Ik zit nu op mijn werk, maar een checkinbouwen of week 53 wel een donderdag heeft moet kunnen.
Jan Koehoorn schreef op 09.01.2006 14:58
Ik zit nu op mijn werk, maar een checkinbouwen of week 53 wel een donderdag heeft moet kunnen.

De donderdag van die week valt inderdaad in het volgend jaar. Succes. (Ik geef je toch niet teveel werk hoop ik) :-)
@ SanThe: nee hoor, het gaat me in dit geval puur om de sport.
Wauw leuk dat jullie me mee helpen! Leuke oplossingen hebben jullie! =) Ik wacht met smart op Jan =)
Versie 3.0, nu met een check op weeknummer 53 :-)

<?php
function ISOdates_from_weeknr ($weeknr, $year, $format = '%d-%m-%Y') {
$start = strtotime ('1 january ' . $year);
$week1 = strftime ('%V', $start);
$weeknr--;
while ($week1 != '01' && $weeknr > 52) {
$start += (7 * 24 * 3600);
$week1 = strftime ('%V', $start);
}
$timestamp_week = strtotime ('+' . $weeknr . ' week', $start);
$check = strftime ('%V', $timestamp_week);
if ($check == '01') {
echo 'ongeldig weeknummer voor dit jaar' . "\n";
return false;
}
$weekdag = strftime ('%u', $timestamp_week);
$dagen_tot_begin_week = $weekdag - 1;
$dagen_tot_eind_week = 7 - $weekdag;
$begindatum = strtotime ("-" . $dagen_tot_begin_week . " days", $timestamp_week);
$einddatum = strtotime ("+" . $dagen_tot_eind_week . " days", $timestamp_week);
$begindatum;
return array (strftime ($format, $begindatum), strftime ($format, $einddatum));
}
?>
@Jan: Ik moet je teleurstellen. Hij is niet goed.
Week 53 in 2002 bestaat niet en bij jou wel. Week 1 in 2003 bestaat wel en bij jou niet.
Veel succes.;-)

Het is hier onder voorbeelden te zien.

Edit: Volgens mij bestaat week 1 bij jou helemaal nooit meer.
Ja, die had ik al gezien, is inmiddels hersteld. Straks als ik thuis ben ga ik eens rustig kijken.

Reageren