質問
私の兄弟の結婚式のためにウェブサイトを作成しています。そしてこれまでのところすべてが順調に進んでいます。しかし、彼はホームページでの結婚式へのカウントダウンを望んでいます。
結婚式まで残った時間:xヶ月、x日、x時間。
私はPHPを使用してこれを行いたいと思っていますが、他の提案に対して開かれています。
コーディングのアイデアを手伝ってくれるか、関連する資料を私に向けることができるなら、それは役に立ちます。
結婚式は7月30日土曜日です。
解決
ページの更新でのみカウンターを表示する必要がある場合は、ページが読み込まれたら静的にする場合、PHPは問題ありません。
ページが表示されたときに更新するためにカウントダウンが必要な場合は、JavaScriptを使用する必要があります。
個人的には、すでに実装されているものを求めて行きます。 その小さなスクリプト.
他のヒント
静的カウントダウンの場合:
//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";
?>
以下は、私がからコピーしたコードスニペットです w3schools Webサイトでは、PHPコードを追加して、「カウントダウン」を「Timestamp」と「Now」タイムスタンプを取得しました。
元の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>
これにはPHP(Serverside)を使用しません。カウントを見るために毎回ページを更新する必要があるからです。このため、より具体的なjQuery(JavaScriptフレームワーク)には、JavaScript(ClientSide)を使用することが望ましい。次のようなjQueryプラグインを探してください。 http://keith-wood.name/countdown.html
リアルタイムが必要な場合は、クライアント側のスクリプト、つまり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()
個々の要素(時間、分、2日目、月など)を選択し、ロールオーバー数学を使用する機能ですが、「いい効果」には大いに悩まされます。
JavaScriptの例が必要な場合はお知らせください。 jqueryを気にしないでください - それは蚊を殺すためのカノンです:)
これを試して
<?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";
?>
これを試して
$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";