2016-09-09 16 views
1

私は現在、Keith Woodによって作成されたjQuery Countdownプラグインを使用していますが、動作させることができません。特定の時間まで数時間、分、秒が残ります日(例:18:00:00)。Javascriptカウントダウン時間

bodyタグ内のコード:

<?php 
$begintijd = $display['start'].":00:00"; 
?> 
<script> 
var begintijd = "<?php echo $begintijd ?>"; 
$(function() { 
    var vandaag = new Date(); 
    werktijd = new Date(vandaag.getDay() begintijd); 
    $('#defaultCountdown').countdown({until: werktijd, format: 'HMS'}); 
}); 
</script> 

$表示[ '開始']は18で、このような状況に戻り(その値は正しいです)。

headタグ内のコード:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
<script src="assets/plugin/js/jquery.plugin.js"></script> 
<script src="assets/plugin/js/jquery.countdown.js"></script> 

jQueryプラグインファイル:http://keith-wood.name/js/jquery.plugin.js

jQueryのカウントダウンファイル:ライン上:http://keith-wood.name/js/jquery.countdown.js

クローム "行方不明)引数リストの後にキャッチされないでSyntaxError" は言います:

werktijd = new Date(vandaag.getDay() 18:00:00); 

私はJavascriptを初めて使用した場合は、事前に感謝します。

答えて

1

まあ、私は任意のプラグインなしで動作するスクリプトを持っていた、

HTML

<div id="days"></div> 
<div id="hours"></div> 
<div id="minutes"></div> 
<div id="seconds"></div> 

Javascriptを& phpの使用であるかもしれない

<%php $begintijd = $display['start']; %> 

$(document).ready(function(){ 
    var timer = null, 
     begintijd = "<%php echo $begintijd %>", 
     endTime = new Date(); //time you want to end 

    endTime.setHours(begintijd); 
    endTime.setMinutes(0); 
    endTime.setSeconds(0); 
    endTime = (Date.parse(endTime))/1000; 

    function makeTimer() { 
     var now = new Date(), 
      now = (Date.parse(now)/1000), 
      timeLeft = endTime - now; 
     if(timeLeft > 0){ 
      var days = Math.floor(timeLeft/86400), 
       hours = Math.floor((timeLeft - (days * 86400))/3600), 
       minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600))/60), 
       seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60))); 
      if (hours < "10") { hours = "0" + hours; } 
      if (minutes < "10") { minutes = "0" + minutes; } 
      if (seconds < "10") { seconds = "0" + seconds; }  

      $("#days").html(days + "<span>Days</span>"); 
      $("#hours").html(hours + "<span>Hours</span>"); 
      $("#minutes").html(minutes + "<span>Minutes</span>"); 
      $("#seconds").html(seconds + "<span>Seconds</span>"); 

     }else{ 
     clearInterval(timer); 
     $("#seconds").html("<span>00Seconds</span>"); 
     } 
    } 
timer = setInterval(function() { makeTimer(); }, 1000); 
}) 

JSフィドル https://jsfiddle.net/69ax5j4L/

+0

私は00Secondsが表示取得しています:単にそれを計算します。getYear、begintijd)現在の日付を取得しようとしています+ 18:00:00 – TripleDeal

+0

おそらく 'var vandaag = new Date();'これは現在の日付と時刻なので、タイマーは00になります。カウントダウンする。 –

+0

PHPの日付関数のように日付関数だけが簡単であるとすれば、それは動作しません。:/あなたは私に必要なコードを表示できますか? – TripleDeal

0

以下のコードでは有効な日付が "???" 「」であるか 『 - 』(私はあなたがどこ行うにtryngかを把握できなかった):

var vandaag = new Date(); 
werktijd = new Date(vandaag.getDay() ??? begintijd); 

だから、最初のステップはそれがどうかをチェックするだけの後に `はconsole.log(werktijd)を追加することですそれは有効な日付を返します(そして、それが現在の日付である場合は、私は把握しています)。

次のチェックDate() syntax

私は間違っていないよ場合は、何をやろうとしていることである。

var vandaag = new Date(); 
// (EDIT) var begintijdHour = new Date(begintijd).getHours(); 
var begintijdTime = new Date(
    vandaag.toDateString() 
    + " " 
    + begintijd 
); 

werktijd = new Date(
    vandaag.getFullYear(), 
    vandaag.getMonth(), 
    vandaag.getDay(), 
    begintijTime.getHours(), 
    begintijTime.getMinutes(), 
    begintijTime.getSeconds() 
); 

// Checks: 
console.log(vandaag); // Should output current time. 
console.log(begintijdHour); // If shows NaN, then begintijd is much 
    // probably not properly formatted as valid dateString input 
    // (see below w3schools link). 

はEDIT:私は、入力が日付の部分が欠けていることを知った後、切り取ら下に編集しました。また、最後のwerktijd計算を変更し、分と秒を考慮に入れました。

時間部分のみを取り入れたい場合(元のコードと同じように)、正規表現を使用するだけで済みます。 begintijをDate()オブジェクトに変換する必要はありません。 VARたendTime =新しい日付(vandaag.getMonth、vandaag.getDate、vandaag:私はこれを持っているとき

var begintijHour = begintij.replace(/:.*/, ''); 
+0

私はNaNを手に入れていますが、begintijdと何を意味するのですか? このコードは、「今日の情報」のページを対象としています。だからあなたは仕事に行くまで残りの時間を見ることができます(そして、ユーザーは18:00にそこにいる必要があります) – TripleDeal

+0

多く...正しくフォーマットされていません(...)。コメントは次の行に続きます(スクロールバーを避けるために改行を追加しました)。 begintijdが正しくフォーマットされていないため、 'new Date(begintijd)'自体が有効な日付を返していません。あなたは 'console.log(begintijd)'出力を表示できますか? – bitifet

+0

console.log(begintijd)は18:00:00を示します。 – TripleDeal

関連する問題