我目前正在使用由Keith Wood创建的jQuery Countdown插件,但是我无法让它工作,我需要显示一天中某个时间剩余的小时,分钟和秒数(例如:18:00:00)。
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>
$ display ['start']在这种情况下返回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
Chrome在参数列表“在线:
后面写了”未捕获的SyntaxError:缺失“werktijd = new Date(vandaag.getDay() 18:00:00);
我是Javascript的新手,如果提前感谢,我们将不胜感激。
答案 0 :(得分:1)
我有一个没有任何插件的脚本,可能正在使用
<强> HTML 强>
<div id="days"></div>
<div id="hours"></div>
<div id="minutes"></div>
<div id="seconds"></div>
Javascript&amp; 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 Fiddle https://jsfiddle.net/69ax5j4L/
答案 1 :(得分:0)
似乎下面的代码不会返回有效日期“???”是“,”或“ - ”(我无法弄清楚你在哪里尝试做):
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).
编辑:我知道输入缺少日期部分后,我在下面编辑了。还修改了上次werktijd计算,以考虑分钟和秒(如果提供)。
如果您只想接收帐户小时部分(就像原始代码一样),您可以通过简单地使用正则表达式来完成。无需将 begintij 转换为Date()对象。只需将其计算为:
var begintijHour = begintij.replace(/:.*/, '');