Gå til innhold

Finne tid mellom to timestamps


Anbefalte innlegg

Hei hei,

 

Jeg holder på med en kode for å sjekke hvor mange timer, minutter og sekunder det er fra en timestamp til en annen.

Jeg har en funksjon som registrerer en timestamp, så har jeg en annen funksjon som viser tiden fra timestamp'et til nåtid.

Jeg føler jeg nesten er på plass, siden det nesten funker :) Eller kanskje ikke...?

 

 

Her er et eksempel fra hva den poster: "Delay: 0 hours, -1min, -20sec".

 

Det jeg selvsagt vil den skal vise, er: "Delay: 0 hours, 3min, 24sec" f.eks.

 

 

 

 

Her er koden for funksjonene:

 

Dette er koden som setter et timestamp i en mysql db.


mysql_connect($hostname, $user, $password) or die("SQL: ErrorID 117.");
mysql_select_db($db);

       // Time Setup
       $currentDATE = date("Ymd");
       $currentYEAR = date ("Y");
       $currentMONTH = date("m");
       $currentDAY = date("d");
       $currentHOUR = date("G");
       $currentMINUTE = date("i");
       $currentSECOND = date("s");



$status = date("H:i:s - j. F");
$sql = "UPDATE check SET currentMONTH='$currentMONTH',currentHOUR='$currentHOUR',currentMINUTE='$currentMINUTE',currentSECOND='$currentSECOND',currentYEAR='$currentYEAR',currentDAY='$currentDAY',currentDATE='$currentDATE' WHERE id='internal'";
$result = mysql_query($sql) or die("SQL: ErrorID 118.");

 

 

Så kommer koden som henter infra fra databasen, og sammenligner. Deretter poster den ut tiden.

 


$sql = "SELECT * FROM check WHERE id='internal'";
$result = mysql_query($sql) or die("SQL: ErrorID 141.");
$row = mysql_fetch_array($result,MYSQL_ASSOC);
extract($row);
$status = $row['status'];

$statusDATE = $row['currentDATE'];
$statusHOUR = $row['currentHOUR'];
$statusMINUTE = $row['currentMINUTE'];
$statusSECOND = $row['currentSECOND'];

       // Time Setup
       $currentDATE = date("Ymd");
       $currentHOUR = date("H");
       $currentMINUTE = date("i");
       $currentSECOND = date("s");

if($statusDATE==$currentDATE){

       $delayHR = $currentHOUR-$statusHOUR;
       $delayMIN = $currentMINUTE-$statusMINUTE;
       $delaySEC = $currentSECOND-$statusSECOND;

 
       echo "Delay: <b>$delayHR</b> hours, <b>$delayMIN</b> min,  <b>$delaySEC</b> sec";

} else {
 echo "Couldnt find time differance.";
}

 

 

Håper noen har et tips å komme med, jeg har prøvd flere metoder, men aldri fått det helt til. Har blandt annet prøvd meg på unix timestampen, og sammenlignet.

Lenke til kommentar
Videoannonse
Annonse

Hva med å bruke funksjonen time() slik:

 

<?php

$statusTIME = $gammelTIMEfradatabase;
$currentTIME = time();


$diff = $currentTIME-$statusTIME;

$hours = floor($diff/3600);
$minutes = floor(($diff-(3600*$hours))/60);
$seconds = $diff-($hours*3600)-($minutes*60);

?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...