04. februar 2009 - 07:48
Der er
6 kommentarer
Tid mellem klokkeslet
Hej Eksperter, Jeg er ved at lave et php-script to skal kunne udlevere timer og minutter mellem to klokkeslet. Hvordan gør jeg dette? Jeg har haft kigget på mktime(), time() og date(), men jeg syntes ikke rigtigt de funktioner kan bruges til det? Håber i er friske på at hjælpe mig På forhånd tusind tak :D Hilsen Jannik
Annonceindlæg fra Cognizant
04. februar 2009 - 09:41
#2
Hej Oskar, Jeg tror ikke helt det besvare det :( Jeg har to klokkeslæt fx 10:00 og 12:35 og jeg vil vide hvor mange timer og minutter der er imellem.. Ved ikke om det forklare det bedre :O Håber der er nogle der ved det. :)
04. februar 2009 - 11:34
#3
Hm, det gør det ikke for mig i hvertfald. Scriptet fra det andet spørgsmål gør jo lige præcis dét, regner ud, hvor lang tid der er i mellem to klokkeslæt?<?php function get_relative_time($datetime) { $diff = time() - strtotime($datetime); if ($diff < 60) return $diff . " sekund" . (($diff != 1) ? "er" : "") . " siden"; $diff = round($diff / 60); if ($diff < 60) return $diff . " minut" . (($diff != 1) ? "ter" : "") . " siden"; $diff = round($diff / 60); if ($diff < 24) return $diff . " time" . (($diff != 1) ? "r" : "") . " siden"; $diff = round($diff / 24); if ($diff < 7) return $diff . " dag" . (($diff != 1) ? "e" : "") . " siden"; $diff = round($diff / 7); if ($diff < 4) return $diff . " uge" . (($diff != 1) ? "r" : "") . " siden"; return date("j/n-y", strtotime($datetime)); } ?>
04. februar 2009 - 12:33
#4
Så er jeg lidt forvirret :( Når jeg kalder det igen, hvordan smider jeg så de to klokkeslet ned i funktionen?
04. februar 2009 - 13:15
#5
<?php get_relative_time($dindato) ?> Så sammenligner den med klokken lige nu. Hvis du vil sammenligne med et andet klokkeslet end nu, skal funktionen udvides en smule. Her er en udgave af funktionen, der modtager to dato, den så sammenligner. Jeg har ikke testet det.. <?php function get_relative_time_new($datetime, $seconddatetime) { $diff = strtotime($seconddatetime) - strtotime($datetime); if ($diff < 60) return $diff . " sekund" . (($diff != 1) ? "er" : "") . " siden"; $diff = round($diff / 60); if ($diff < 60) return $diff . " minut" . (($diff != 1) ? "ter" : "") . " siden"; $diff = round($diff / 60); if ($diff < 24) return $diff . " time" . (($diff != 1) ? "r" : "") . " siden"; $diff = round($diff / 24); if ($diff < 7) return $diff . " dag" . (($diff != 1) ? "e" : "") . " siden"; $diff = round($diff / 7); if ($diff < 4) return $diff . " uge" . (($diff != 1) ? "r" : "") . " siden"; return date("j/n-y", strtotime($datetime)); } ?> Så du har to funktioner: get_relative_time($dindato) get_relative_time_new($dindato, $enandendato)
04. februar 2009 - 13:25
#6
Tusind tak for dit svar, jeg ved det er mig der er dum - og har et spørgsmål mere.. Når jeg køre nedenstående, hvordan får jeg den så til at resultere et komma tal, fx 1,4 time.. Lige nu runder den ned og siger 1 time siden ? Håber du stadig er frisk, så skal du tilgængel nok snart slippe for flere spørgsmål :) <?php function get_relative_time_new($datetime, $seconddatetime) { $diff = strtotime($seconddatetime) - strtotime($datetime); if ($diff < 60) return $diff . " sekund" . (($diff != 1) ? "er" : "") . " siden"; $diff = round($diff / 60); if ($diff < 60) return $diff . " minut" . (($diff != 1) ? "ter" : "") . " siden"; $diff = round($diff / 60); if ($diff < 24) return $diff . " time" . (($diff != 1) ? "r" : "") . " siden"; $diff = round($diff / 24); if ($diff < 7) return $diff . " dag" . (($diff != 1) ? "e" : "") . " siden"; $diff = round($diff / 7); if ($diff < 4) return $diff . " uge" . (($diff != 1) ? "r" : "") . " siden"; return date("j/n-y", strtotime($datetime)); } //get_relative_time($dindato); $test = get_relative_time_new("11:00", "12:12"); echo $test; ?>
Kurser inden for grundlæggende programmering