2017-04-19 3 views
2

Ich habe ein Problem, das ich in letzter Zeit denke.PHP Zeit und Differenz

Ich versuche, auf, um herauszufinden, wie eine 2-Minuten-Countdown-Timer erstellen, die sich ständig selbst ausgeführt werden, wenn kein Client ist das PHP-Skript ausgeführt wird. (Wenn der Client, der mit der Seite verbunden ist, sagt, dass er 22 Sekunden lang angezeigt wird und danach wird er auf 2 Minuten zurückgesetzt);

I auf die Schaffung eines Zeitstempel dachte, die Zeit() und Art der Berechnung der Differenz zwischen der aktuellen Zeit und der Zielzeit neu formatiert zu registrieren. Damit komme ich aber auf ein anderes Problem, wie würde das PHP-Skript wissen, wann es alle 2 Minuten zurückgesetzt wird?

Ich habe keine Ahnung, wie dies zu lösen, vielleicht hat es keine Lösung, aber ich würde gerne ein paar Ideen, um zu sehen, die mir helfen können!

Danke!

<?php 

/* A countdown timer of 2 minutes would be set from a specific time in anytime time I'd set ($timestamp), it should be able to reset everytime it reaches 0 or negative, it'd be synchronized to all users connected (everyone would see the same)*/ 
    function generate_newtimestamp() 
    { 

    } 
    $timestamp = mktime(21, 43, 0, 4, 19, 2017); //(hour,minute,second,month,day,year) say this variable would start off 2 minutes ahead of current time at any time that was set, and this variable needs to self_update once 2 minutes pass (maybe server-sided...Any ideas?) 
    $today = time(); 

// now I want to calculate the difference between the actual time itself and the 2 minutes target time I want it to run 
if(!negativeTimestamp($timestamp, $today)) 
{ 
    $difference =($timestamp-$today); 
    $minutes = floor($difference/60); 
    $sec = ($difference/60 - $minutes) * 60; 
    echo $minutes . "<br>"; 
    echo $sec; 
}else{ 
    generate_newtimestamp(); 
} 

function negativeTimestamp($time, $stamp) 
{ 
    $difference =($stamp-$time); 
    return ($stamp-$time<$difference) ? true : false; 
} 
?> 
+0

Was Sie versucht haben, zeigen Sie uns bitte einen Code? – Script47

+1

Speichert die Zeit, in der der Client die Seite in einer 'Sitzung' lädt. Beim nächsten Laden die Uhrzeit vergleichen. – chris85

+0

Bei [so] wird erwartet, dass Sie versuchen, ** den Code selbst zu schreiben **. Nach ** [weitere Recherchen durchführen] (// meta.stackoverflow.com/questions/261592)** Wenn du ein Problem hast, kannst du ** alles posten, was du versucht hast ** mit einer ** klaren Erklärung dessen, was isn ' t funktioniert ** und liefert ein [** minimales, vollständiges und verifizierbares Beispiel **] (// stackoverflow.com/help/mcve). Ich schlage vor, eine gute Frage und die perfekte Frage zu lesen (http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/). Achten Sie auch darauf, die [Tour] zu nehmen und ** [this] (// meta.stackoverflow.com/questions/347937/)** zu lesen. –

Antwort

1

Ich würde einfach einige Berechnungen auf der aktuellen Zeit ausführen es auf die nächsten zwei volle Minuten aufrunden. Von dort aus würde ich dann den Unterschied zwischen dieser gerundeten Zeit und der aktuellen Serverzeit herausfinden. Etwas wie folgt aus:

$now = time(); 
$nextTwoMinute = ceil($now/120) * 120; //120 seconds = 2 minutes 
print_r("Time Left: " . ($nextTwoMinute - $now)); 

Dies bedeutet, dass Ihre Anwendung nicht im Hintergrund ausgeführt werden müssen, wie es auf der Zeitinformationen vom Server verlassen können, wenn ein Benutzer die Seite anfordert. Offensichtlich, wenn Sie alle zwei Minuten eine Funktion ausführen müssen, die etwas mehr nach den Regeln einer Cron-Funktion benötigt.

+0

das funktioniert tatsächlich xD! Danke für Ihr Wissen! – Hxfs

0

Speichern von Zeitstempel irgendwo und Erstellen von cron job alle paar Sekunden laufen. Wenn current_time - timestamp> = 120 Sekunden: fortfahren, wenn nicht: abbrechen.

(es wird nicht sehr präzise sein, wird aber funktionieren)

+0

Ich schätze Ihren Kommentar, aber das ist für mich unmöglich sein würde, da ich nicht Cron-Job ausführen kann: [ – Hxfs

+0

Halten Sie einen Web-Cron-Dienst? –

+0

Entschuldigung für die verspätete Antwort, Verstand erklären im Detail, was das ist? – Hxfs

Verwandte Themen