Beetje vage titel en ik zelf heb ook nog niet helemaal een helder idee van hoe ik dit ga klaar spelen:
ik heb een drop down list met alle weken van het jaar en ik wil dat als je bijvoorbeeld week 7 kiest je dan moet je 2 velden krijgen > zaterdag en zondag en achter zaterdag moet dan staat 17/01 en zondag 18/01. Maar welke functies kan ik hiervoor gebruiken en is dit überhaupt mogelijk?
Maar ga ik kijken op welke dag week 7 begint etc..? Ik moet natuurlijk ook rekening houden met schrikkeljaar. En volgend jaar en het jaar daarna moet het nog steeds allemaal kloppen
Mag het uitgerekend worden nadat je op de submit knop heb gedrukt?
Of wil je het gelijk hebben?
Thomas - 09/01/2007 15:30 (laatste wijziging 09/01/2007 15:31)
Moderator
Je kunt wel aan de hand van een timestamp bepalen in welke week je zit: date("W", $timestamp). Deze weken beginnen op maandagen, dus je zou er 1 of 2 dagen vanaf kunnen trekken om resp. op zondag en zaterdag uit te komen. Maar dan moet je dus wel de omgekeerde berekening uit kunnen voeren. Als je eerst een "offset" berekent (dus welke dag van de week het vandaag is), dan kun je vanuit daar verder rekenen naar de eerstvolgende zaterdag en zondag, en vervolgens kun je hier verder mee rekenen. Je kunt nl. van de maand waar je in zit ook bepalen hoeveel dagen deze bevat met behulp van date("t", $timestamp). Zo kun je ook van de volgende X weken de zaterdagen en zondagen bepalen (over meerdere maanden). Of je begint gewoon op de eerste dag van een nieuw jaar, kijkt welke dag dit is, en dan "loop" je naar het eerste weekend.
@Kr4nKz1n, nadat je uit een dropdown list een week nummer heeft gekozen, moeten er 2 data komen
@FangorN, werkt dat ook als bijvoorbeeld het zaterdag 31 januari is en zondag 1 februari? Rekent hij dan wel goed?
Op zich niet zo moeilijk. Met de functie date() en je brein moet je een heel eind komen ;)
Thomas - 09/01/2007 16:40 (laatste wijziging 09/01/2007 16:41)
Moderator
Het enige wat je in pcipe moet weten / bijhouden om te starten met rekenen is:
- een "offset"
- het aantal dagen in een maand - dit is te bepalen met standaard PHP-functies (date("t", $some_date))
je moet wel opleten indien 1 januari toevallig een zaterdag is!
Gewoon 24 uren van de timestamp aftreken voordat je 'next saturday' zou dit probleem geval moeten oplossen ;)
een nogal brute functie, maar een die zeker werkt is date je alle dagen van het jaar (365*date(0,0,0,$loop)) afloopt en alle zaterdagen en zondagen (die je checkt met date) opslaat in een array