web-dev-qa-db-ja.com

PHP)を使用してカウントダウンを作成する方法

私は私の兄弟の結婚式のためのウェブサイトを作成しています。そしてこれまでのところ、すべてが順調に進んでいます。しかし、彼はホームページで結婚式へのカウントダウンを望んでいます。

結婚式までの残り時間:Xか月、X日、X時間。

Phpを使用してこれを実行したいのですが、他の提案も受け付けています。

コーディングのアイデアを手伝ってくれるか、関連資料を教えていただければ、それは役に立ちます。

結婚式は7月30日土曜日です。

8
RSM

カウンターをページの更新時にのみ表示し、ページが読み込まれると静的にする必要がある場合は、PHPで問題ありません。

ページが表示されたときにカウントダウンを更新する必要がある場合は、JavaScriptを使用する必要があります。

個人的には、 その小さなスクリプト のように、すでに実装されているものを選びます。

7

以下は、 W3Schools Webサイトからコピーしたコードスニペットですが、「カウントダウン」タイムスタンプと「現在」タイムスタンプを取得するためのPHPコードを追加しました。

元のJavaScriptコードをコメントアウトし、2か所でPHPコードに置き換えたので、2つのオプションの違いは明らかです。

基本的に、「サーバー時間」の方が信頼性が高いと思う場合は、PHPアプローチを採用できます。

<!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>
2
hailong

静的カウントダウンの場合:

<?php

//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 "$countdown days until Christmas";

?>
2
user284291

これを試して

$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";
0
Rejayi CS

これにはphp(サーバーサイド)は使用しません。カウントを表示するには、毎回ページを更新する必要があるためです。できれば、この、より具体的なjquery(javascriptフレームワーク)にはjavascript(クライアントサイド)を使用してください。そして、次のようなjqueryプラグインを探します。 http://keith-wood.name/countdown.html

0
filsterjisah

リアルタイムで何かが必要な場合は、クライアント側のスクリプト、つまりJavaScriptを使用する必要があります。

PHPでそれを行うことはできますが、「アニメーション化」することはありません。

_$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";
_

数か月間、さらに数学を入れることもできますが、1か月は一定の時間ではないため、あいまいになります。

もう1つの方法は、date()関数を使用して個々の要素(時、分、秒、日、月など)を選択し、ロールオーバー計算を使用することですが、「素敵な効果」には多くの手間がかかります。 '。

JavaScriptの例が必要な場合はお知らせください。 jQueryを気にしないでください-それは蚊を殺すためのキヤノンです:)

0
Neil E. Pearson

これを試して

<?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";

    ?>