login  Naam:   Wachtwoord: 
Registreer je!
 Forum

unix tijd omzetten naar uren, min, sec (Opgelost)

Offline daanlaan - 18/05/2010 10:44 (laatste wijziging 18/05/2010 10:47)
Avatar van daanlaanMySQL interesse ik heb in mijn db een veld van het type int hierbij staat de tijd in unix in.
DIE tijd is altijd groter dan de huidige tijd en wil graag de resterende uren min en sec berekenen. maar ik kom er niet aan uit...
dus bv 3:25:17

is hier een functie voor?
of een functie die bv 14.2563 uur omzet in uren, min en sec ofzo

6 antwoorden

Gesponsorde links
Offline Jelmerholland - 18/05/2010 11:07 (laatste wijziging 18/05/2010 11:08)
Avatar van Jelmerholland PHP beginner Jawel, [edit: Eigenlijk niet(voor zover ik weet)]
http://php.net/manual/en/function.date.php

PHP.net schreef:
string date ( string $format [, int $timestamp ] )


Wat je bijvoorbeeld doet is dit:
  1. $Unix = time(); //Tijd van wanneer ik dit schrijf (In dit geval 1274173578 )
  2. $TimeTo = "1274346254"; //Tijd van wanneer ik dit schrijf, maar dan op 20-05-2010
  3. $Verschil = $TimeTo - $Unix; //Verschil berekenen (Dus hoe lang nog tot 20-05-2010?
  4. // $Verschil is dus 1274346254 - 1274173578 = 172676
  5.  
  6. $VerschilInJarenMaandenDagenUrenMinutenSeconden = date("Y-m-d H:i:s",$Verschil);

Dan bedenk ik me net dat dit niet gaat werken, want dan krijg je de datum van unix-timestamp 172676, en niet de tijd ernaar toe.

Kan je niet zelf iets schrijven?
1) Dus delen door 86400 -> dagen, MOET EEN HEEL GETAL GEVEN, DUS AFRONDEN
2) Dan delen door 3600 -> uren, "" "" ""
3) Dan delen door 60 -> minuten, "" "" ""
4) De rest zijn de seconden.. 

http://php.net/manual/en/language.types.float.php
Offline cyberninjah - 18/05/2010 11:39
Avatar van cyberninjah Lid kijk is naar de functie strtotime()
Offline UpLink - 18/05/2010 18:45 (laatste wijziging 18/05/2010 18:45)
Avatar van UpLink ... Zo bereken ik de leeftijd van iemand. Ik gebruik ook de Unix-tijd in de database en geef dan de correcte leeftijd weer met volgende code:

  1. <?php
  2. $tijd = time();
  3. $leeftijd_berekenen = ($row['leeftijd'] < 0) ? ( $tijd + ($row['leeftijd'] * -1) ) :$tijd - $row['leeftijd'];
  4. $leeftijd = floor($leeftijd_berekenen/31536000);
  5. ?>


Enig nadeel aan dit script (en ik krijg het ook niet voor elkaar):

Als iemand geen leeftijd invult, dan krijgt die de leeftijd 40. Ik vermoed dat dat de leeftijd van Unix is ofzo.

Als iemand hier toch een oplossing voor weet, dan hoor ik het graag :-)
Offline Jelmerholland - 19/05/2010 13:27
Avatar van Jelmerholland PHP beginner dan zou het nog atlijd 50 moeten zijn Want Unix is toch vanaf 1960?
Offline Arphetic - 19/05/2010 20:26 (laatste wijziging 19/05/2010 20:41)
Avatar van Arphetic Nieuw lid 1970

Anyways om erop terug te komen, ge neemt timestamp 1 uit de database, $timestamp1
Ge neemt nu: $timestamp2 = time();

Ge doet $timestamp = $timestamp1 - $timestamp2
Vergolgens gebruikt ge de volgende functie:
http://www.go4e....php?t=456

Of ge schrijft iets wat hier op lijkt. Komt hier op neer: haal eerst alle 3600'en eruit, vervolgens alle 60'en, en het restant is het aantal seconden. ez as that

[ floor() en % ]
Offline Jelmerholland - 20/05/2010 19:02
Avatar van Jelmerholland PHP beginner Precies wat ik dus zij in m'n 1e reply 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.244s