0
私はPHPからの2つの時間の差であるカウントダウン時間を望みます、結果はタイムスタンプです。PHPのタイムスタンプ差からのJavaScriptのカウントダウン
{var $time = new \DateTime()}
<div class="date" data-date="{= ($time2->getTimestamp() - $time->getTimestamp())*1000}">
私は時間差[タイムスタンプ]を持っています。今度はこの時間をカウントダウンしたい。この情報をHTMLからJSに取得します。
$(function() {
$(".date").each(function(){
time = $(this).data('date');
$.countdown($(this).children(".countdown"), time);
});
});
正常に動作しないコードがあります。
jQuery.countdown = function(selector, datevalue) {
var amount = datevalue;
// catch past dates
if(amount < 0){
$(selector).html("Done");
}
// date is in the future, calculate the diff
else{
days=0;hours=0;mins=0;secs=0;out="";
amount = Math.floor(amount/1000);//kill the "milliseconds" so just secs
days=Math.floor(amount/86400);//days
amount=amount%86400;
hours=Math.floor(amount/3600);//hours
amount=amount%3600;
mins=Math.floor(amount/60);//minutes
amount=amount%60;
secs=Math.floor(amount);//seconds
//if(days != 0){out += days +" day"+((days!=1)?"s":"")+", ";}
//if(days == 0) {
if(days != 0 || hours != 0){out += ((hours<10)?"0":"") + hours +":";}
if(days != 0 || hours != 0 || mins != 0){out += ((mins<10)?"0":"") + mins +":";}
out += ((secs<10)?"0":"") + secs;
$(selector).html(out);
//}
// run it all again
setTimeout(function() {
$.countdown(selector, datevalue);
}, 1000);
}
};
JSからの時間は適切な場所にありますが、カウントダウンはしません。
どのようにして、タイムアウト1秒の量をその仕事与えている必要がある場合は正常に動作しますか? –
'time = parseInt($(this).data( 'date')、10);'おそらく? – mplungjan
を削除し、 'amount = Math.floor(amount/1000);を削除すると、ミリ秒単位で「ちょうど秒」を殺すと、PHPから* 1000を取り除くことができます – mplungjan