1 2 3 4 5 | <?php $uAnne_s1 = new DateTime("2005-08-16"); $uAnne_e1 = new DateTime("2006-02-13"); $uAnne_i1 = $uAnne_s1->diff($uAnne_e1)->days; ?> |
Mods met meerdere fora hebben dus meerdere van zulke berekeningen. Anne heeft er bijvoorbeeld 9.quote:181
1 2 3 | <?php $uAnne_total = $uAnne_i1 + $uAnne_i3 + $uAnne_i5 + $uAnne_i6; ?> |
Nu wilde ik de ranglijst uitbreiden; naast het aantal in dagen, wil ik het aantal ook weergeven in jaren/maanden/dagen. Bedoel, "3 j, 4 m, 26 d" zegt meer dan '1244 dagen'.quote:2297 (181+188+98+1830)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php // PUB $uAnne_s1 = new DateTime("2005-08-16"); $uAnne_e1 = new DateTime("2006-02-13"); $uAnne_i1 = $uAnne_s1->diff($uAnne_e1)->days; // datediff in dagen $uAnne_i1_ymd = $uAnne_s1->diff($uAnne_e1); // wordt gebruikt voor ymd-berekening // F&F $uAnne_s3 = new DateTime("2006-08-07"); $uAnne_e3 = new DateTime("2007-02-11"); $uAnne_i3 = $uAnne_s3->diff($uAnne_e3)->days; // datediff in dagen $uAnne_i3_ymd = $uAnne_s3->diff($uAnne_e3); // wordt gebruikt voor ymd-berekening // Opsomming PUB + F&F in dagen (werkend!): $uAnne_total = $uAnne_i1 + $uAnne_i3; // YMD, niet werkend: $uAnne_total_ymd = $uAnne_i1_ymd + $uAnne_i3_ymd $uAnne_ymd = $uAnne_total_ymd->y . " j, " . $uAnne_total_ymd->m." m, ".$uAnne_total_ymd->d." d"; // Voorbeeldresultaat: 1 j, 2 m, 3 d ?> |
Maanden met 31 of 28/29 dagen dan?quote:Op vrijdag 12 december 2014 10:21 schreef Nattekat het volgende:
Je kan het aantal dagen delen door 365 en naar beneden afronden, daarna delen door 30 voor het aantal maanden, en wat je onderhoud is het aantal dagen.
Dan heb je een resultaat dat relatief is. Je houdt geen rekening met een aantal zaken, zoals schrikkeljaren bijvoorbeeld.quote:Op vrijdag 12 december 2014 10:21 schreef Nattekat het volgende:
Je kan het aantal dagen delen door 365 en naar beneden afronden, daarna delen door 30 voor het aantal maanden, en wat je onderhoud is het aantal dagen.
1 2 3 4 | <?php $uAnne_s1 = new DateTime("2005-08-16"); $uAnne_e1 = new DateTime("2006-02-13"); ?> |
Is dat niet hetzelfde als delen door 365/30? Door het in seconden te plaatsen en dat te delen mis je de context, no?quote:Op vrijdag 12 december 2014 12:04 schreef remi1986 het volgende:
gooi die dates in een strtotime. Het verschil daartussen is het aantal seconden. Dat weer delen door 60 heb je aantal minuten etc.
ow wacht .. diff() is beter inderdaad.quote:Op vrijdag 12 december 2014 12:08 schreef zarGon het volgende:
[..]
Is dat niet hetzelfde als delen door 365/30? Door het in seconden te plaatsen en dat te delen mis je de context, no?
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $january = new DateTime('2010-01-01'); $february = new DateTime('2010-02-01'); $interval = $february->diff($january); // %a will output the total number of days. echo $interval->format('%a total days')."\n"; // While %d will only output the number of days not already covered by the // month. echo $interval->format('%m month, %d days'); ?> |
Dit was ik ook tegengekomen, maar dit werkte ook niet.quote:Op vrijdag 12 december 2014 12:13 schreef remi1986 het volgende:
[..]
ow wacht .. diff() is beter inderdaad.
[ code verwijderd ]
The above example will output:
31 total days
1 month, 0 days
je kan toch de uiterste begindatum pakken en de uiterste einddatum en dan die diff?quote:Op vrijdag 12 december 2014 12:19 schreef zarGon het volgende:
[..]
Dit was ik ook tegengekomen, maar dit werkte ook niet.
Stel, je wil naast een interval van $januari en $februari ook een interval van $mei en $augustus. En een totaal daarvan.
Dus:
- januari - februari = 1 maand (werkend)
- mei - augustus = 3 maanden (werkend)
---------
Totaal: 4 maanden (krijg ik niet aan de praat)
Hoe krijg je dat totaal werkend? Dat lukt me namelijk niet.
Nee, want als je januari - augustus doet, neem je ook de maanden maart en april mee, en dat wil je juist niet. Daarom ook de meerdere diffs, de datums sluiten vaak niet op elkaar aan.quote:Op vrijdag 12 december 2014 12:21 schreef remi1986 het volgende:
[..]
je kan toch de uiterste begindatum pakken en de uiterste einddatum en dan die diff?
als je dan een array maakt met de totalen. Als je vervolgens format gebruikt zonder de woorden krijg je alleen het getal. Die kan je dan optellen in de array.quote:Op vrijdag 12 december 2014 12:24 schreef zarGon het volgende:
[..]
Nee, want als je januari - augustus doet, neem je ook de maanden maart en april mee, en dat wil je juist niet. Daarom ook de meerdere diffs, de datums sluiten vaak niet op elkaar aan.
$januari - $februari (1) + $mei - augustus (3) = 4 maanden
$januari - $augustus = 7 maanden
Kun je daar een voorbeeldcode van geven?quote:Op vrijdag 12 december 2014 12:38 schreef remi1986 het volgende:
[..]
als je dan een array maakt met de totalen. Als je vervolgens format gebruikt zonder de woorden krijg je alleen het getal. Die kan je dan optellen in de array.
klopt, daarom zijn intervals ook niet zomaar achter elkaar te plakken. Onze kalender is gewoon een veel te ingewikkelde standaard om dit probleem simpel op te lossen. Van mij mochten ze die helemaal overhoop gooien, tiendaagse weken en maanden helemaal afschaffen bijvoorbeeld.quote:Op vrijdag 12 december 2014 12:43 schreef zarGon het volgende:
Op zich is het ook logisch dat het niet werkt; bedoel hoe kun je 2 dagen optellen bij 1 maand 29 dagen... Wordt het dan 2 maanden, 2 dagen (februari), 2 maanden, 1 dag (30 dagen-maand) of 2 maanden, 0 dagen (31 dagen-maand).
Hmpf.
quote:Op vrijdag 12 december 2014 12:43 schreef zarGon het volgende:
Op zich is het ook logisch dat het niet werkt; bedoel hoe kun je 2 dagen optellen bij 1 maand 29 dagen... Wordt het dan 2 maanden, 2 dagen (februari), 2 maanden, 1 dag (30 dagen-maand) of 2 maanden, 0 dagen (31 dagen-maand).
Hmpf.
ja om ook echt rekening te houden met aantal dagen in een maand, wordt wel ff lastig. Kan je niet gewoon per periode het aantal weergeven?quote:Op vrijdag 12 december 2014 12:44 schreef zarGon het volgende:
[..]
Kun je daar een voorbeeldcode van geven?
Dat kan, maar daarmee kun je geen 'totalen-lijst' maken, zoals op http://fok.zevkiselim.nl/crew/?type=ranglijst.quote:Op vrijdag 12 december 2014 12:49 schreef remi1986 het volgende:
[..]
[..]
ja om ook echt rekening te houden met aantal dagen in een maand, wordt wel ff lastig. Kan je niet gewoon per periode het aantal weergeven?
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Met deze getallen kom je uit op 14 j, 9 m, 11.6808 d... Dit lijkt het dichts bij te komen en min of meer te kloppen. Ik weet alleen niet hoe ik met deze getallen een soort van formule kan maken die ik makkelijk kan gebruiken.
[ Bericht 22% gewijzigd door #ANONIEM op 12-12-2014 13:03:19 ]
quote:Op vrijdag 12 december 2014 13:02 schreef zarGon het volgende:
Volgens Google:
- 1 jaar = 365.242 dagen (https://www.google.nl/search?q=1+year+in+days)
- 1 maand = 30.4368 dagen (https://www.google.nl/search?q=1+year+in+days)je kan dit toch gewoon gebruiken en er een ceil() overheen gooien?SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Met deze getallen kom je uit op 14 j, 9 m, 11.6808 d... Dit lijkt het dichts bij te komen en min of meer te kloppen. Ik weet alleen niet hoe ik met deze getallen een soort van formule kan maken die ik makkelijk kan gebruiken.
maar volgens mij klopt er niks van. 32 dagen kan 1 maand en 1 dag zijn, 1 maand en 2 dagen, 1 maand en 3 dagen en 1 maand en 4 dagen. Je weet niet wanneer deze dagen waren.
quote:Op vrijdag 12 december 2014 13:02 schreef zarGon het volgende:
Volgens Google:
- 1 jaar = 365.242 dagen (https://www.google.nl/search?q=1+year+in+days)
- 1 maand = 30.4368 dagen (https://www.google.nl/search?q=1+year+in+days)Eerst delen door, dan aftrekken.SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Met deze getallen kom je uit op 14 j, 9 m, 11.6808 d... Dit lijkt het dichts bij te komen en min of meer te kloppen. Ik weet alleen niet hoe ik met deze getallen een soort van formule kan maken die ik makkelijk kan gebruiken.100.000 katjes
Fuck the EBU!
Eens met deze baas. In deze weergave boeit het imo niet of het exact klopt, gaat om het idee.quote:Op vrijdag 12 december 2014 13:39 schreef zoem het volgende:
Dan zou ik kiezen voor weergeven van jaren + dagen als je het eenvoudig wil houden. Als je maanden wil zou ik zelf kiezen voor 1 maand = 30 dagen. Als jaar zou ik 365 dagen aanhouden. Complexe berekeningen met gemiddeldes en schrikkeljaren maken het voor zowel de ontwikkelaar als gebruiker lastiger om de getallen te interpreteren.
Het zijn gemiddelden.quote:Op vrijdag 12 december 2014 13:26 schreef remi1986 het volgende:
[..]
je kan dit toch gewoon gebruiken en er een ceil() overheen gooien?
maar volgens mij klopt er niks van. 32 dagen kan 1 maand en 1 dag zijn, 1 maand en 2 dagen, 1 maand en 3 dagen en 1 maand en 4 dagen. Je weet niet wanneer deze dagen waren.
quote:365.2425 days: the average length of a year in the Gregorian calendar
http://en.wikipedia.org/wiki/Year#Summary.
Daarom wil ik die getallen wel gebruiken. Het hoeft niet helemaal te kloppen, een zo goed mogelijke indicatie is ook prima.quote:The mean month length of the Gregorian calendar is 30.436875 days.
http://en.wikipedia.org/wiki/Month#Julian_and_Gregorian_calendars.
Probleem is dat ik niet weet hoe ik dit optimaal kan inzetten. Ik heb nu 96 users, dat betekent minimaal 96 keer dezelfde code herhalen. Ik vraag me af of de code zo geschreven kan worden dat je 96 keer dezelfde code gebruikt, in plaats van 96 keer herhalen. Als ik telkens 3 regels nodig heb, betekent dat 300 regels aan code, als dat makkelijker kan...quote:Op vrijdag 12 december 2014 13:36 schreef Nattekat het volgende:
[..]
Eerst delen door, dan aftrekken.
die dagen heb je toch al? Of is dat nog allemaal statisch? En je kan er toch een functie van maken?quote:Op vrijdag 12 december 2014 14:21 schreef zarGon het volgende:
[..]
Het zijn gemiddelden.
[..]
[..]
Daarom wil ik die getallen wel gebruiken. Het hoeft niet helemaal te kloppen, een zo goed mogelijke indicatie is ook prima.
[..]
Probleem is dat ik niet weet hoe ik dit optimaal kan inzetten. Ik heb nu 96 users, dat betekent minimaal 96 keer dezelfde code herhalen. Ik vraag me af of de code zo geschreven kan worden dat je 96 keer dezelfde code gebruikt, in plaats van 96 keer herhalen. Als ik telkens 3 regels nodig heb, betekent dat 300 regels aan code, als dat makkelijker kan...
Ik heb zelf geen idee of dit kan... En dan heb ik toch wel de hulp van jullie nodig, want zelf heb ik geen idee waar ik naar zou moeten kijken.
https://github.com/zarGon(...)1.0/content/date.php.quote:Op vrijdag 12 december 2014 14:24 schreef remi1986 het volgende:
[..]
die dagen heb je toch al? Of is dat nog allemaal statisch?
Je als in 'men'? Ja, vast wel.quote:En je kan er toch een functie van maken?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |