Gå til innhold

Utregning av tid mellom 2 tidsrom


Anbefalte innlegg

Hei

 

Hvordan ville dere gått frem for å finne ut hvor mange timer, minutter og sekunder det er imellom 2 tidsrom ved bruk av minst mulig kode?

 

Feks, jeg skal finne ut hvor lenge det er imellom 12:38:21 og 14:23:07.. Dette skal vises i antall timer, minutter og sekunder.

Lenke til kommentar
Videoannonse
Annonse

<?php
$from = explode(':', $_GET['f']);
$to = explode(':', $_GET['t']);

$difference = date('H:i:s', mktime($to['0'] - 1, $to['1'], $to['2'], 0, 0, 0) - mktime($from['0'], $from['1'], $from['2'], 0, 0, 0));
echo $difference;
?>

Edit: Gjelder bare hvis tidene er på samme dag.

Edit: Noen som vet hvorfor jeg på skrive mktime($to['0'] - 1,... for at den skal vise riktig?

Endret av endrebjorsvik
Lenke til kommentar

Pen løsning. Et lite problem er at den viser 1 time for mye. Klarer ikke helt sjønne hvorfor det skjer..

 

<?php
$fra = "12:10:00";
$til = "14:10:00";

$from = explode(':', $fra);
$unix_from = mktime($from['0'], $from['1'], $from['2'], 0, 0, 0);
$to = explode(':', $til);
$unix_to = mktime($to['0'], $to['1'], $to['2'], 0, 0, 0);

$unix_difference = $unix_to - $unix_from;
$difference = date('H:i:s', $unix_difference);
echo $difference; // 03:00:00 - Burde være 02:00:00
echo "<br />$unix_from"; // 943960200
echo "<br />$unix_to"; // 943967400
echo "<br />$unix_difference"; // 7200
?>

 

Edit: Ser nå at du har editert hva jeg spør om.. Synes dette virker rart da koden ser helt fin ut.. Må være noe med hvordan mktime() opererer med Unix.. Interesant om noen har svar

Endret av Nunya
Lenke til kommentar

Hmm, jeg bruker dette til nedtelling i et auksjonsscript mot Ebay og når jeg bruker koden din uten -1 modifikasjonen viser den korrekt om antall timer er null.

 

Feks, det er 00:15:23 igjen av en auksjon.

 

Om jeg bruker -1 vil den vise 23:15:23

 

edit: skrivefeil

Endret av Nunya
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...