lijkt me lastig omdat je niet weet welke maanden het zijn. Als alle maanden nou precies 31 dagen hadden was het niet zo heel moeilijk. Je kan ook gewoon dagen / 31 doen en dan zeggen ongeveer zoveel maanden en dagen,
Of je doet eerst bijvoorbeeld -31, als dat nog boven de 0 komt (of 0) doe je -30, dan weer checken of het niet onder de 0 is, en weer -31. Dat de hele tijd door.
Dan tel je dat aantal stappen, dat is het aantal maanden. En dan nog het overgebleven, dat zijn de dagen.
maar je weet niet welke dagen die 221 ofzo zijn ;)
zijn dat de eerste 221 of de laatste 221 dagen van een jaar? En welk jaar is dat dan? Is dat een schrikkeljaar? Allemaal dingen waar je mee bezig moet zijn.
Stel je hebt 72 dagen.
Doe je eerst -31, heb je 41 over. (dus nog geen 0, kan nog een maand af). Dan -30 heb je 11 over. (weer geen 0, da's weer een maand).
Nou, 11 over, weer -31. Dat is onder de 0 dus geen maand meer.
Je kan eerst kijken welke maand het is. Voor hoeveel dagen je nog aan maanden hebt (In dit geval 2) en dan kijken welke maanden het zijn (Juni, Juli) en dan kijken hoeveel dagen elke maand heeft en dan kan je kijken als je dan 30-31 doet (voorbeeld) je nog genoeg hebt voor een maand
juni heeft nu nog 10dagen dus wordt, 113
juli heeft 31 dagen wordt dus 88 dagen
augustus heeft 31 dagen wordt dus 57 dagen
september heeft 30 dagen wordt dus 26 dagen
een loopje $i++ mee geven, kom je dus op:
4 maanden, en 26 dagen.
Zoiets bedoel ik ja, maar dan moet je dus voor elke maand gaan kijken of het nog een volle maand is en hoeveel dagen elke maand heeft. En dan moet je nog rekening houden met schrikkeljaren
De oplossing voor jouw probleem is gewoon een begin of een einddatum te weten komen Dus dat je weet vanaf welke datum de dagen beginnen of op welke datum de dagen stoppen.
<?php
echo date("t",mktime(0,0,0,7,0,2007))." = Aantal dagen in juli<br>";
echo date("t",mktime(0,0,0,8,0,2007))." = Aantal dagen in augustus<br>";
echo date("t",mktime(0,0,0,9,0,2007))." = Aantal dagen in september<br>";
?>
<?php
echodate("t",mktime(0,0,0,7,0,2007))." = Aantal dagen in juli<br>";
echodate("t",mktime(0,0,0,8,0,2007))." = Aantal dagen in augustus<br>";
echodate("t",mktime(0,0,0,9,0,2007))." = Aantal dagen in september<br>";
?>
Geeft respectievelijk:
30 = Aantal dagen in juli
31 = Aantal dagen in augustus
31 = Aantal dagen in september
Alles is een maand opgeschoven.
Is dit altijd bij mktime, of klopt er iets niet?