abonnement Unibet Coolblue Bitvavo
pi_144575626
Even een update!

Met dank aan remi1986 is er nu een versie dat code-technisch véél beter in elkaar zit. Deze versie heb ik momenteel op Github staan.

Het project FOK-crewgeschiedenis bevat 3 branches:
- 1.0: de handmatige versie. Alle code werd per 'user' en 'forum' handmatig geschreven. Live te zien op op http://fok.zevkiselim.nl/crew.
- 2.0: eerste poging om de boel dynamisch te maken m.b.v. PHP en MySQL. Code is dus amateuristisch. Live te zien op http://fok.zevkiselim.nl/crew2.0.
- master (3.0): huidige versie; opgezet door remi1986. Bevat Smarty en zit technisch veel beter in elkaar! Live te zien op http://fok.zevkiselim.nl/crew3.0.

Huidige 3.0 bevat:
- Weergave van users
- (Admin) Invoeren en wijzigen van users (inc. rollen!)

Belangrijkste to-do:
- Google Charts implementeren (en weergeven van ingevoerde user-gegevens)

Er is nog veel te doen. :P. Als iemand zou willen helpen hoor ik dat graag!

[ Bericht 0% gewijzigd door #ANONIEM op 16-09-2014 09:17:27 ]
pi_144587079
Iemand die mee zou willen helpen met de Google Charts? Nu er Smarty gebruikt wordt kan dat netter dan mijn oplossing. :+.
pi_147507789
Ik heb even hulp nodig met het omzetten van een datediff...

PHP:
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;
?>
Resultaat:
quote:
181
Mods met meerdere fora hebben dus meerdere van zulke berekeningen. Anne heeft er bijvoorbeeld 9.

Er wordt ook een totaal berekend; dit totaal is uniek, de dubbele/overlappende dagen worden vermeden.

Bij Anne is dat een opsomming van functie 1,3, 5 en 6:
1
2
3
<?php
    $uAnne_total 
$uAnne_i1 $uAnne_i3 $uAnne_i5 $uAnne_i6;
?>
Resultaat:
quote:
2297 (181+188+98+1830)
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'.

Even opgezocht, dit gevonden: http://stackoverflow.com/a/14519315.

Dit werkt, maar alleen bij 1 datediff. Als het totaal dus alleen bestaat uit $uAnne_i1, werkt het. Maar wanneer het totaal uit meerdere datediffs bestaat, werkt het niet.

Iemand een idee hoe ik dit werkend kan krijgen?

Code:
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->" j, " $uAnne_total_ymd->m." m, ".$uAnne_total_ymd->d." d";
// Voorbeeldresultaat: 1 j, 2 m, 3 d
?>

Ik zou het totaal van $uAnne_e1 en $uAnne_e3 graag terug willen zien in jaren/maanden/dagen.

[ Bericht 0% gewijzigd door #ANONIEM op 12-12-2014 10:21:59 ]
  Moderator / Redactie Sport vrijdag 12 december 2014 @ 10:21:52 #94
359864 crew  Nattekat
De roze zeekat
pi_147507898
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.
100.000 katjes
Fuck the EBU!
  Redactie Sport / Supervogel vrijdag 12 december 2014 @ 10:31:53 #95
270182 crew  Pino112
Pino van Luna O+
pi_147508056
quote:
0s.gif 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.
Maanden met 31 of 28/29 dagen dan?
pi_147508080
quote:
0s.gif 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.

De ->y ->m ->d is absoluut, en daarom beter.


10 oktober 2014 t/m 10 december 2014 = 62 dagen.
Delen door 30 levert op: 0 jaren, 2 maanden, 2 dagen
->y ->m ->d levert op: 0 jaren, 2 maanden, 1 dag

10 oktober t/m 9 november = 1 maand
10 november t/m 9 december = 1 maand
+10 december = 1 dag
-------------------------
2 maanden, 1 dag

Edit:
Ik tel overigens de begindag mee. Het datumverschil is een 'tot en met'.

Startdatum: 1 december 2014
Einddatum: 3 december 2014

Dit zijn dus 3 dagen en niet 2. Bij mijn berekeningen noteer ik de begindatum als begindatum - 1 dag.
1
2
3
4
<?php
    $uAnne_s1 
= new DateTime("2005-08-16");
    
$uAnne_e1 = new DateTime("2006-02-13");
?>
Begindatum = 17 augustus 2005
Einddatum: 13 december 2006

[ Bericht 7% gewijzigd door #ANONIEM op 12-12-2014 10:55:13 ]
pi_147510227
gooi die dates in een strtotime. Het verschil daartussen is het aantal seconden. Dat weer delen door 60 heb je aantal minuten etc.
pi_147510325
quote:
0s.gif 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.
Is dat niet hetzelfde als delen door 365/30? Door het in seconden te plaatsen en dat te delen mis je de context, no?
pi_147510460
quote:
0s.gif 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?
ow wacht .. diff() is beter inderdaad.

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');
?>

The above example will output:

31 total days
1 month, 0 days
pi_147510647
quote:
0s.gif 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
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.

[ Bericht 2% gewijzigd door #ANONIEM op 12-12-2014 12:20:11 ]
pi_147510686
quote:
0s.gif 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.
je kan toch de uiterste begindatum pakken en de uiterste einddatum en dan die diff?
pi_147510769
quote:
0s.gif 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?
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
pi_147510828
In geval van Anne zie je bijvoorbeeld een gat tussen 2007 (tweede helft) en 2010. Uiterse datums pakken betekent dat dat gat ook meegeteld wordt, maar dat is dus niet de bedoeling.

[ Bericht 3% gewijzigd door #ANONIEM op 12-12-2014 12:27:00 ]
pi_147511130
Da's lastig. Denk dat de beste manier is de dagen, uren, minuten enz. los bij elkaar op te tellen.

Je zou ook de einddatum van van het eerste interval kunnen nemen, hier het dateinterval van de 2e periode bij optellen (zodat je een soort "virtuele" nieuwe einddatum hebt), en een nieuwe dateinterval maken tussen de startdatum en virtuele einddatum. Maar dan zie ik potentieel problemen met schikkeldagen of verschillende maandlengtes ontstaan.
pi_147511148
quote:
0s.gif 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
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.
pi_147511293
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.
pi_147511294
Hoezo staat Tjacka niet in je lijst
Alles dankzij God en alles op eigen kracht
pi_147511295
quote:
0s.gif 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.
Kun je daar een voorbeeldcode van geven?
  Moderator / Redactie Sport vrijdag 12 december 2014 @ 12:44:31 #109
359864 crew  Nattekat
De roze zeekat
pi_147511307
Maanden zijn sowieso relatief, maakt ergens geen biet uit :D
100.000 katjes
Fuck the EBU!
pi_147511394
quote:
0s.gif 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.
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.
pi_147511428
quote:
0s.gif 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:
0s.gif Op vrijdag 12 december 2014 12:44 schreef zarGon het volgende:

[..]

Kun je daar een voorbeeldcode van geven?
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?
pi_147511523
quote:
0s.gif 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?
Dat kan, maar daarmee kun je geen 'totalen-lijst' maken, zoals op http://fok.zevkiselim.nl/crew/?type=ranglijst.

Wat is volgens jullie de beste methode om dit op te lossen? Wat levert de beste indicatie op?

5399 dagen wordt in geval van Lois vertaald als "14 j, 9 m, 12 d" (is 1 diff).
5399/365/30 levert op: 14 j, 9 m, 19 d.
5399/365/31 levert op: 14 j, 9 m, 10 d.

Of kan dit gewoon niet?

[ Bericht 4% gewijzigd door #ANONIEM op 12-12-2014 12:57:10 ]
pi_147511866
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)

SPOILER
Om 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 ]
pi_147512716
quote:
0s.gif 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)

SPOILER
Om 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.
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.
  Moderator / Redactie Sport vrijdag 12 december 2014 @ 13:36:14 #115
359864 crew  Nattekat
De roze zeekat
pi_147513113
quote:
0s.gif 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)

SPOILER
Om 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.
Eerst delen door, dan aftrekken.
100.000 katjes
Fuck the EBU!
pi_147513232
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.
  FOK!mycroftheld vrijdag 12 december 2014 @ 13:42:46 #117
128465 bondage
pi_147513325
quote:
0s.gif 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.
Eens met deze baas. In deze weergave boeit het imo niet of het exact klopt, gaat om het idee.
pi_147514388
quote:
0s.gif 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.
Het zijn gemiddelden.

quote:
365.2425 days: the average length of a year in the Gregorian calendar

http://en.wikipedia.org/wiki/Year#Summary.
quote:
The mean month length of the Gregorian calendar is 30.436875 days.

http://en.wikipedia.org/wiki/Month#Julian_and_Gregorian_calendars.
Daarom wil ik die getallen wel gebruiken. Het hoeft niet helemaal te kloppen, een zo goed mogelijke indicatie is ook prima.
quote:
1s.gif Op vrijdag 12 december 2014 13:36 schreef Nattekat het volgende:

[..]

Eerst delen door, dan aftrekken.
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.

[ Bericht 1% gewijzigd door #ANONIEM op 12-12-2014 14:22:21 ]
pi_147514511
quote:
0s.gif 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.
die dagen heb je toch al? Of is dat nog allemaal statisch? En je kan er toch een functie van maken?
pi_147514605
quote:
0s.gif Op vrijdag 12 december 2014 14:24 schreef remi1986 het volgende:

[..]

die dagen heb je toch al? Of is dat nog allemaal statisch?
https://github.com/zarGon(...)1.0/content/date.php.

quote:
En je kan er toch een functie van maken?
Je als in 'men'? Ja, vast wel.
Je als in 'ik'? Nee, ik kan dat niet.

[ Bericht 3% gewijzigd door #ANONIEM op 12-12-2014 14:27:55 ]
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')