我想做一个倒数计时器,倒计时到某个日期和时间。 我希望能够通过在文本框中输入日期和时间(例如2014-01-25, 15:00
)或类似的东西,从“管理控制台”设置日期和时间。你可能已经想通了,我不是最好的PHP或JavaScript,我需要的方向,以及我将如何做到这一点。倒数计时器到管理面板设置的日期
任何帮助表示赞赏,因为我在过去的2小时内没有取得任何进展,我试过这样做。
我想做一个倒数计时器,倒计时到某个日期和时间。 我希望能够通过在文本框中输入日期和时间(例如2014-01-25, 15:00
)或类似的东西,从“管理控制台”设置日期和时间。你可能已经想通了,我不是最好的PHP或JavaScript,我需要的方向,以及我将如何做到这一点。倒数计时器到管理面板设置的日期
任何帮助表示赞赏,因为我在过去的2小时内没有取得任何进展,我试过这样做。
要使用像jQuery没有框架做到这一点,你可以做到以下几点:
var MINUTE_IN_MILLISECONDS = 60 * 1000;
var HOUR_IN_MILLISECONDS = 60 * MINUTE_IN_MILLISECONDS;
var YEAR_IN_MILLISECONDS = 24 * HOUR_IN_MILLISECONDS;
var targetDate = new Date('2014-01-25 15:00');
var countdownInterval;
function countdown(){
var currentDate = new Date();
var difference = targetDate.getTime() - currentDate.getTime();
//Countdown has expired, cancel interval and do other tasks here
if(difference <= 0)
{
difference = 0;
clearInterval(countdownInterval);
//Update button here
}
var days = Math.floor(difference/YEAR_IN_MILLISECONDS);
difference -= days * YEAR_IN_MILLISECONDS;
var hours = Math.floor(difference/HOUR_IN_MILLISECONDS);
difference -= hours * HOUR_IN_MILLISECONDS;
var minutes = Math.floor(difference/MINUTE_IN_MILLISECONDS);
difference -= minutes * MINUTE_IN_MILLISECONDS;
var seconds = Math.floor(difference/1000);
console.log(days + ":" + hours + ":" + minutes + ":" + seconds);
}
countdownInterval = setInterval(countdown, 1000);
这里的Fiddle
你知道计算机科学中存在一个名为['mod'](https://en.wikipedia.org/wiki/Modular_arithmetic)的东西... –
@Derek朕会功夫这简直就是一个简单易懂的阅读实施倒计时的例子。这没有错,只是不同于你的答案。 –
哇我从来没有说过你的错。我只是建议'%'是一个更简单的解决方案,供您使用,而不是计算所有剩余部分。 –
充分的论证:http://jsfiddle.net/DerekL/T48SL/
<form>
<input type="date" required><input type="time" required>
<input type="submit">
</form>
<span></span>
$("form").on("submit", function (e) {
e.preventDefault();
var date = $("input[type=date]").val(),
time = $("input[type=time]").val(),
targetTime = new Date(date + " " + time),
interval = setInterval(function() {
$("span").html(
(((+startingTime - Date.now())/1000)|0) + " seconds left until " + startingTime.toString() + "."
);
}, 500);
});
这是相当容易与代数,而不是格式化的几秒钟时间:
//yourTime is in seconds
(yourTime) % 60 //seconds
(yourTime/60 |0) % 60 //minutes
(yourTime/3600 |0) % 24 //hours
(yourTime/86400 |0) //days
/*
* Explanation:
* % is mod, it finds the remainder of two numbers.
* |0 is binary OR, it rounds down a floating number.
*
*/
利用这种技术,你不需要做一堆减法,并在这个过程中创造了很多的垃圾变量。
1+ Citizen mysterious-downvoter reversal;) –
显示您在2个小时内想出的内容。 –