login  Naam:   Wachtwoord: 
Registreer je!
 Forum

unixtijd herrekenen

Offline twopeak - 28/02/2005 22:20
Avatar van twopeakGouden medaille

PHP ver gevorderde
Heeft iemand ooit eens een juiste (of redelijk juiste ) manier gevonden om unixtijd terug te rekenen naar datums ?
Met enkel gebruik van plus min maal gedeeld en mod?

Ik heb dit maar het trekt op gn klote...
Door de afrondingen (en het feit dat een jaar niet exact 365 dagen van 24u telt) kom ik al in problemen met de maanden...
  1. <?
  2. $nu = time();
  3. echo "nu: ".$nu." !<br><br>";
  4. echo "<hr>";
  5.  
  6. $jaarsec = (60 * 60 * 24 * 7 * 52);
  7. $jaar = 1970 + $nu / $jaarsec;
  8. $jaarrest = $nu % $jaarsec;
  9.  
  10. $maandsec = (60 * 60 *24 * 7 * 52) / 12;
  11. $maand = $jaarrest / $maandsec;
  12. $maandrest = $nu % $maandsec;
  13.  
  14. /*
  15. $weeksec = (60 * 60 *24 * 7 * 52) / 52;
  16.  $week = $rest / $weeksec;
  17.  
  18. $rest = $nu % $maandsec;
  19. */
  20.  
  21. $dagsec = (60 * 60 * 24);
  22. $dag = $maandrest / $dagsec;
  23. $dagrest = $nu % $dagsec;
  24.  
  25. $minuutsec = (60 * 60);
  26. $minuut = $dagrest / $minuutsec;
  27. $minuutrest = $nu % $jaarsec;
  28. $seconde = $minuutrest;
  29.  
  30. echo "<hr>";
  31. echo "jaren ". floor($jaar) . " ( ".$jaarrest." )<br>";
  32. echo "maanden ". floor($maand) . " ( ".$maandrest." )<br>";
  33. echo "weken ". floor($week) . " ( ".$weekrest." )<br>";
  34. echo "dagen ". floor($dag) . " ( ".$dagrest." )<br>";
  35. echo "uren ". floor($uur) . " ( ".$uurrest." )<br>";
  36. echo "minuten ". floor($minuut) . " ( ".$minuutrest." )<br>";
  37. echo "seconden ". floor($seconde) . " ( ".$seconderest." )<br>";
  38. echo "<hr>";
  39. ?>



enkel gebruik van + - * / en %?
enkel gebruik van add substract multiply divide en modulus?
enkel gebruik van plus min maal gedeeld en rest ve staartdeling?

10 antwoorden

Gesponsorde links
Offline klostpret - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van klostpret HTML interesse Ik vond dit ergens op het netrnrn[code]rnphprnfunction rfc_date($date)rn{rn $date = date('r',$date);rn $date = str_replace(',','',$date);rn return $data;rn} rnrn[code]rnrnDe input is de UNIX-timernHet werkt wel, maar het werkt niet met + - etc.
Offline NCube - 30/11/1999 00:00
Avatar van NCube HTML beginner Om het misschien wat accurater te krijgen, moet je ervan uitgaan dat een jaar uit 365 dagen en 6 uur bestaat, omdat elke 4 jaar er 1 volle dag extra is.
Offline twopeak - 30/11/1999 00:00
Avatar van twopeak Gouden medaille

PHP ver gevorderde
klostpret, ik schreef het [b][u]4[u] keer [b] in verschillende [b][u]talen[u] en [u]schrijfwijzen[u][b]rn[quote]man, man man, wat kunnen sommige mensen toch OERSTOM zijn![quote]WAAROM DACHT JE DAT IK DAT ER ZOVEEL BIJSCHREEFrnrnrn@NCube... dat zou wel eens een meer keurige benadering kunnen geven... thanx
Offline NCube - 30/11/1999 00:00
Avatar van NCube HTML beginner Je zou het trouwens ook op een andere manier kunnen benaderen, je begint gewoon bij 01970 en blijft doorgaan tot je bij $nu komt, weet alleen niet of dit nadelige gevolgen zou kunnen hebben op de snelheid van het script.rnIk wordt zelf nu wel een beetje nieuwsgierig hierna en ik ga het morgen denk ik zelf maar eens proberen )
Offline Dennisvb - 30/11/1999 00:00
Avatar van Dennisvb MySQL ver gevorderde Extra info over die 6 uurrnrnJulius Ceasar had naar voorbeeld van de egyptische kalender de juliaanse kalender ingevoerd die uit 365 14 dag besatnd. Omdat wij een kwart dag onhandig vinden doen we er elke 4 jaar 1 dag bij, dan is het schrikkeljaar. Die kwart dag per jaar is dus 6 uur 
Offline flance - 30/11/1999 00:00
Avatar van flance HTML interesse Je moet nog ergens rekening mee houden, ik ben ook een keer flink met tijden en data bezig geweest, zo zit het schikkeljaar in elkaarrn Is het deelbaar door 4 (en krijg je een heel getal), schrikkeljaarrn is het deelbaar door 100 (en krijg je een heel getal), is het toch geen schrikkeljaarrn is het deelbaar door 1000 (en krijg je een heel getal), is het alsnog een schikkeljaar...rnrnKijk maar, 1900 was het niet en 2000 wel ;)rnrnOke, dan denk ik niet dat je dit script nog gaat gebruiken na 2100 ) dan liggen we denk ik allemaal wel 2 meter onder de grond..rnrnVerder denk ik dat je gewoon moet verder gaan zoals je al bezig was, dat is denk ik de enige manier wat ik kan bedenken )
Offline flance - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van flance HTML interesse Ik zit even te denken, en volgens mij kan je beter mktime() gebruiken. rn jaartallen van elkaar aftrekken, dan heb je het aantal jaren verschilrn maanden van elkaar aftrekken, als negatief, haal dat getal van 12 af en haal er 1 van het jaar af..rn dagen van elkaar aftrekken, als negatief, haal dat getal van 31302928 af (gewoon even kijken hoeveel dagen er in die maand zitten, dat kan je ook gelijk met mktime()) en haal ook 1 van het aantal maanden af..rnrnen ga zo maar door..rnrnWeken zijn niet zo terug te rekenen omdat je niet weet of het jaar op een maandag begon ofzo. Is wel te doen, ook weer met mktime() maar is iets lastiger dan de rest )
Offline Klopper - 30/11/1999 00:00
Avatar van Klopper HTML interesse Ligt het nou aan mij of bekijk ik het gewoon te makkelijkrnCorrigeer me maar als ik het niet snap, maar volgens mij kan het ook zorn[code]phprn $unixtijd = exec('`date +%d-%m-%Y`');rn[code]Ik weet helaas niet zeker of dit mogelijk is omdat je met exec() niet elk commando kan uitvoeren.
Offline flance - 30/11/1999 00:00
Avatar van flance HTML interesse Dat is hetzelfde als mktime() en date() maar dat schiet niet echt op denk ik, want hij wil het verschil weten met toen )
Offline twopeak - 30/11/1999 00:00
Avatar van twopeak Gouden medaille

PHP ver gevorderde
Klopper lees even mijn post door, en dan nog eens, en dan nog eens en dan nog eens en dan nog eens en dan nog eens en dan nog eens en als je het dan nog niet snapt lees je mijn eerste reactie, en als je het dan niet snapt, dan lees je het nog ens, en dan nog eens en dan nog eensrn[b]enkel met plus min maal gedeeld[b]rnrnik denk da'k genoeg heb om het opnieuw te proberen... het probleem schijnt 'm nu vooral te liggen bij afrondingsfouten (
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.19s