login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Dagen omzetten naar maanden (Opgelost)

Offline Chupskie - 20/06/2007 14:22
Avatar van ChupskieMySQL beginner Hallo allemaal,

Ik heb een rijtje met dagen die elke dag aftellen, bijv:
226 dagen
160 dagen
174 dagen

Kan ik dit ook omzetten naar maanden en dagen?
Dus bijvoorbeeld dan wordt 72 dagen bijvoorbeeld:
2 maanden, 11 dagen

Is dit mogelijk, zo ja hoe?
Alvast bedankt

17 antwoorden

Gesponsorde links
Offline marten - 20/06/2007 14:25
Avatar van marten Beheerder 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,
Offline Chupskie - 20/06/2007 14:27
Avatar van Chupskie MySQL beginner Ja dat dacht ik dus ook? Maar misschien had iemand al ooit eerder zo iets gemaakt/gezocht/gevonden?

Iemand nog meer ideeen?
Offline ikki007 - 20/06/2007 14:27
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
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.
Offline Chupskie - 20/06/2007 14:29 (laatste wijziging 20/06/2007 14:35)
Avatar van Chupskie MySQL beginner Sorry ikki007, maar ik begrijp je niet helemaal? hoe kom je aan die 0?

Ik weet btw wel het aantal van deze maand, kan ik daar niks mee?
Want dan weet ik dat dus ook van de volgende maand toch of niet?

edit: @ikki007, het kwartje is gevallen.. haha, dat duurde ff zeg haha^^
ik zal het eens gaan proberen.
Offline marten - 20/06/2007 14:34
Avatar van marten Beheerder 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.
Offline ikki007 - 20/06/2007 14:35
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
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.

2 stappen = 2 maanden + 11 dagen
Offline Chupskie - 20/06/2007 14:35 (laatste wijziging 20/06/2007 14:36)
Avatar van Chupskie MySQL beginner Dus, het beste op dit moment is, ikki007's manier gebruiken?

edit: dankje, dat lijkt me voorloppig de best manier.
ik ga het meteen proberen.. hartelijke dank voor nu;-) 
Offline Ultimatum - 20/06/2007 14:36
Avatar van Ultimatum PHP expert 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

Beetje omslachtig en geen idee of het werkt 
Offline Chupskie - 20/06/2007 14:39
Avatar van Chupskie MySQL beginner @ultimatium, je bedoelt dus zoiets:

123 dagen

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.

Zou dit kunnen gaan werken, ja??
Offline Ultimatum - 20/06/2007 14:40 (laatste wijziging 20/06/2007 14:40)
Avatar van Ultimatum PHP expert 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
Offline Chupskie - 20/06/2007 14:48 (laatste wijziging 20/06/2007 15:04)
Avatar van Chupskie MySQL beginner Dan doe ik het wel zoiets:
date(j) dag van de maand (vandaag dus 20ste)
date(m) maand (vandaag dus 06 (dus juni))

en date(t) aantal dagen in een gegeven maand (deze maand 30 dus)
en dan in een loop gooien ofzo:p
Offline marten - 20/06/2007 15:07
Avatar van marten Beheerder 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.
Offline Stefan14 - 20/06/2007 15:10
Avatar van Stefan14 PHP gevorderde misschien dat deze functie je wat op weg helpt?
http://www.site...amp;id=245
Offline Chupskie - 20/06/2007 15:27 (laatste wijziging 20/06/2007 15:37)
Avatar van Chupskie MySQL beginner Iets klopt er niet, met de mktime functie:
  1. <?php
  2. echo date("t",mktime(0,0,0,7,0,2007))." = Aantal dagen in juli<br>";
  3. echo date("t",mktime(0,0,0,8,0,2007))." = Aantal dagen in augustus<br>";
  4. echo date("t",mktime(0,0,0,9,0,2007))." = Aantal dagen in september<br>";
  5. ?>


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?

edit: ook alweer gelukt..
-> echo date("t",mktime(0,0,0,7,1,2007)); ipv
-> echo date("t",mktime(0,0,0,7,0,2007));
Offline gothmog - 20/06/2007 15:45 (laatste wijziging 20/06/2007 16:43)
Avatar van gothmog Lid Edit:

Verbeterde versie:
http://www.pastebin.be/2978
Ik weet niet of alles goed werkt, maar dat moet je zelf maar even verbeteren. Het is iig een begin!

Het meeste werkt iig!
Offline Chupskie - 20/06/2007 20:09 (laatste wijziging 20/06/2007 20:10)
Avatar van Chupskie MySQL beginner @gothmog, ik had je bericht niet meer gezien helaas 

Maaar..:p 
Het is mezelf toch gelukt.. ^^

Code kun je hier vinden: http://www.pastebin.be/2986

Der zitten denk ik wel stukken in die vele malen korter, maja het werkt iig goed. 

Hebben jullie nog tips / verbeteringen / dingen die korter kunnen? 
En is het misschien iets voor in de script lib van sima?  
Offline Simon - 20/06/2007 20:31
Avatar van Simon PHP expert je kan toch het aantal dagen in een array steken? die zijn altijd dezelfde, behalve februari, maar die kan je bijvoorbeeld variabel houden
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.199s