2010-12-22 9 views
4

Im Erstellen einer Website für meine Brüder Hochzeit. Und bisher läuft alles gut. Er möchte jedoch einen Countdown zur Hochzeit auf der Homepage;Wie man einen Countdown mit PHP

Verbleibende Zeit bis zur Hochzeit: X Monate, X Tage, X Stunden.

Ich würde das gerne mit php machen, wäre aber offen für andere Vorschläge.

Wenn Sie mir mit Ideen für die Codierung helfen können, oder mich nur auf relevantes Material zeigen, wäre das nützlich.

Die Hochzeit ist am Samstag, den 30. Juli.

+0

Wann ist die Hochzeit? –

+1

Das gesellschaftliche Ereignis, bei dem die Trauungszeremonie durchgeführt wird –

+0

Die Hochzeit ist am Samstag 30. Juli. – RSM

Antwort

5

Wenn Sie möchten, dass Ihr Zähler nur auf der Seitenaktualisierung angezeigt wird und nach dem Laden der Seite statisch bleibt, ist PHP in Ordnung.

Wenn Sie möchten, dass der Countdown aktualisiert wird, wenn die Seite angezeigt wird, müssen Sie JavaScript verwenden.

Persönlich würde ich für etwas bereits implementiert, wie that small script gehen.

1

für statischen Countdown:

//A: RECORDS TODAY'S Date And Time 
$today = time(); 

//B: RECORDS Date And Time OF YOUR EVENT 
$event = mktime(0,0,0,12,25,2006); 

//C: COMPUTES THE DAYS UNTIL THE EVENT. 
$countdown = round(($event - $today)/86400); 

//D: DISPLAYS COUNTDOWN UNTIL EVENT 
echo "$countown days until Christmas"; 

?> 
0

Ich würde nicht php (serverseitig) für diesen. Weil Sie Ihre Seite jedes Mal aktualisieren müssen, um die Zählung zu sehen. Verwenden Sie vorzugsweise javascript (clientside) für diesen, spezifischer jquery (javascript framework). Und suchen Sie nach einem Jquery-Plugin wie: http://keith-wood.name/countdown.html

0

Wenn Sie etwas in Echtzeit wollen, müssen Sie clientseitige Skripting verwenden, nämlich JavaScript.

Sie können es in PHP tun, aber es wird nicht „animieren“:

$wedding = strtotime("2011-07-01 12:00:00+0400"); // or whenever the wedding is 
$secondsLeft = $wedding - time(); 
$days = floor($secondsLeft/60*60*24); 
$hours = floor(($secondsLeft - $days*60*60*24)/60*60); 
echo "$days days and $hours hours left"; 

Sie etwas mehr Mathematik in monate setzen konnte, aber es wird unschärfer, weil ein Monat nicht ein fester Betrag ist von Zeit. Die andere Möglichkeit wäre, die date() Funktion zu verwenden, um die einzelnen Elemente (Stunde, Minute, Sekunde, Tag, Monat usw.) auszuwählen und Rollover-Mathe zu verwenden, aber es ist eine Menge Ärger für einen "netten Effekt".

Lassen Sie mich wissen, wenn Sie ein JavaScript-Beispiel möchten. Nicht mit jQuery Mühe - es einen Kanon ist für das Töten eines Moskito :)

0

versuchen diese

<?php 

    $target = mktime(0, 0, 0, 9, 25, 2011) ;//set marriage date 

    $today = time() ; 

    $difference =($target-$today) ; 

    $month =date('m',$difference) ; 
    $days =date('d',$difference) ; 
    $hours =date('h',$difference) ; 

    print $month." month".$days." days".$hours."hours left"; 

    ?> 
0

Versuchen Sie, diese

$wedding = strtotime("2014-02-20 12:00:00"); // or whenever the wedding is 
$current=strtotime('now'); 
$diffference =$wedding-$current; 
$days=floor($diffference/(60*60*24)); 

echo "$days days left"; 
1

Es folgt der Code-Schnipsel ich von der W3Schools Website kopiert haben , während mein PHP-Code hinzugefügt wurde, um den Zeitstempel "Countdown zu" und den Zeitstempel "Jetzt" zu erhalten.

Sie werden sehen, dass ich den ursprünglichen JavaScript-Code auskommentiert und ihn an zwei Stellen durch PHP ersetzt habe. Es ist also klar, was der Unterschied zwischen zwei Optionen ist.

Grundsätzlich, wenn Sie denken, dass die "Serverzeit" in Ihrem Fall zuverlässiger ist, können Sie den PHP-Ansatz übernehmen.

<!DOCTYPE HTML> 
<html> 

<head> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <style> 
    p { 
     text-align: center; 
     font-size: 60px; 
     margin-top: 0px; 
    } 
    </style> 
</head> 

<body> 
    <p id="demo"></p> 
    <script> 
    // Set the date we're counting down to 
    // 1. JavaScript 
    // var countDownDate = new Date("Sep 5, 2018 15:37:25").getTime(); 
    // 2. PHP 
    var countDownDate = <?php echo strtotime('Sep 5, 2018 15:37:25') ?> * 1000; 
    var now = <?php echo time() ?> * 1000; 

    // Update the count down every 1 second 
    var x = setInterval(function() { 

     // Get todays date and time 
     // 1. JavaScript 
     // var now = new Date().getTime(); 
     // 2. PHP 
     now = now + 1000; 

     // Find the distance between now an the count down date 
     var distance = countDownDate - now; 

     // Time calculations for days, hours, minutes and seconds 
     var days = Math.floor(distance/(1000 * 60 * 60 * 24)); 
     var hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
     var minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60)); 
     var seconds = Math.floor((distance % (1000 * 60))/1000); 

     // Output the result in an element with id="demo" 
     document.getElementById("demo").innerHTML = days + "d " + hours + "h " + 
      minutes + "m " + seconds + "s "; 

     // If the count down is over, write some text 
     if (distance < 0) { 
      clearInterval(x); 
      document.getElementById("demo").innerHTML = "EXPIRED"; 
     } 
    }, 1000); 
    </script> 
</body> 

</html>