09. september 2008 - 15:38
Der er
11 kommentarer og 1 løsning
Nedtælling til tidspunkt (PHP)
Hejsa. Jeg kører et cronjob kl 6:00 og kl 18:00. Jeg ville gerne lave en nedtælling til dette så jeg kunne skrive: Næste opdatering om 2 timer. Altså en nedtælling til nærmeste cronjob.. Er der nogen der har nogle tips til hvordan man gør dette? Mange tak
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
09. september 2008 - 16:52
#1
Utestet: <?php $TidCronjob = array("21600","64800"); // 6 timer og 18 timer (Mindst nederst) $TidIdag = mktime(0, 0, 0, date("m"), date("d"), date("Y")); $TidNu = mktime(18, 6, 0, date("m"), date("d"), date("Y")); $TidForskeld = $TidNu-$TidIdag; for ($i = 0; $i <= count($TidCronjob)-1; $i++) { if ($TidCronjob[$i] > $TidForskeld) { $TidUdskriv = $TidCronjob[$i]-$TidForskeld; $TidNaesteDag = 1; echo "Næste opdatering: ".date('H:i:s', mktime(0,0,0,date("m"),date("d"),date("Y"))+$TidUdskriv); } } // Hvis tiden er imorgen if ($TidNaesteDag != 1) { $TidImorgen = mktime(0, 0, 0, date("m"), date("d")+1, date("Y"))+$TidCronjob[0]; $TidUdskriv = $TidImorgen-$TidNu."."; echo "Næste opdatering: ".date('H:i:s', mktime(0,0,0,date("m"),date("d")+1,date("Y"))+$TidUdskriv); } ?>
09. september 2008 - 17:00
#2
Efter at have testet får jeg: Næste opdatering: 11:54:00 Det kan jo ikke helt passe :S
09. september 2008 - 18:24
#3
Prøv at leg videre med denne kode: <?php $next_day = getdate(strtotime('+1 day')); $next_job = mktime(6,0,0,$next_day['mon'],$next_day['mday'],$next_day['year']); $now = time(); $diff = $next_job - $now; echo "Sekunder til next job = " . ($diff % (60*60*12)); ?>
09. september 2008 - 18:40
#4
Den er tættere på, men den rammer vist ikke helt plet.. PHP time er: 18:39:36, og scriptet siger der er 11:34 til next job. Det er en lille difference.. Hvordan kan det være?
09. september 2008 - 18:41
#5
Ændrede i øvrigt til: $job = ($diff % (60*60*12))/60/60 For at få det i timer :)
09. september 2008 - 18:42
#6
Eller vent. Det er nok det der er fejlen. Jeg har gjort sådan her: $next_day = getdate(strtotime('+1 day')); $next_job = mktime(6,0,0,$next_day['mon'],$next_day['mday'],$next_day['year']); $now = time(); $diff = $next_job - $now; $job = ($diff % (60*60*12))/60/60; $test = explode(".",$job); $timer = $test[0]; $min = substr($test[1],0,2); print("Der er ".$timer." og ".$min." min til update<br>"); print date("H:i:s");
09. september 2008 - 18:49
#7
Prøv igen: <?php $TidCronjob = array("21600","64800"); // 6 timer og 18 timer (Mindst nederst) $TidIdag = mktime(0, 0, 0, date("m"), date("d"), date("Y")); $TidNu = time(); $TidForskeld = $TidNu-$TidIdag; for ($i = 0; $i <= count($TidCronjob)-1; $i++) { if ($TidCronjob[$i] > $TidForskeld) { $TidUdskriv = $TidCronjob[$i]-$TidForskeld; $TidNaesteDag = 1; echo "Næste opdatering: ".date('H:i:s', mktime(0,0,0,date("m"),date("d"),date("Y"))+$TidUdskriv); } } // Hvis tiden er imorgen if ($TidNaesteDag != 1) { $TidImorgen = mktime(0, 0, 0, date("m"), date("d")+1, date("Y"))+$TidCronjob[0]; $TidUdskriv = $TidImorgen-$TidNu."."; echo "Næste opdatering: ".date('H:i:s', mktime(0,0,0,date("m"),date("d")+1,date("Y"))+$TidUdskriv); } ?>
09. september 2008 - 18:51
#8
Nu viser den korrekt tid. Spørgsmålet er om den også gøre det imorgen kl 6.. Det må tiden vise.. Mange tak ihvertfald :)
09. september 2008 - 21:08
#9
Min kode burde nu virke fint nok. :o) Se koden her, med lidt bedre formattering af DIFF: <?php //http://www.eksperten.dk/spm/844794 $next_day = getdate(strtotime('+1 day')); $next_job = mktime(6,0,0,$next_day['mon'],$next_day['mday'],$next_day['year']); $now = time(); $diff = ($next_job - $now) % (60*60*12); $hours = floor($diff / (3600)); $minutes = floor(($diff - ($hours * 3600)) / 60); $seconds = $diff - (($hours * 3600) + ($minutes * 60)); echo 'Tid på serveren : ' . date('H:i:s') . '<br />'; echo 'Timer : ' . $hours . '<br />'; echo 'Minutter : ' . $minutes . '<br />'; echo 'Sekunder : ' . $seconds . '<br />'; ?>
09. september 2008 - 21:09
#10
13. september 2008 - 10:17
#11
Fik du det til at virker eller ?
12. juni 2010 - 20:54
#12
Lukker her, skriv endelig hvis i vil have point :P
Vi tilbyder markedets bedste kurser inden for webudvikling