Javascript倒计时

时间:2011-02-28 11:15:21

标签: javascript date time countdown

我想在我们公司的内部网页上公布直到下一个发薪日的天数,但是 - 发薪日日期不是每4个星期等等,它们将与此类似:

1st January 2011
15th February 2011
12th March 2011
20th April 2011
...

是否可以使用列出上述日期的javascript倒计时时钟,因此一旦过了一个日期,它就会开始倒计时直到下一个日历日期?

我可以找到很多脚本的例子,这些脚本在特定日期之前倒计时但没有一个在第一个日期过后开始倒计时到第二个日期。

谢谢, 丹

2 个答案:

答案 0 :(得分:2)

将日期放在数组中。小心,在Javascript中,月份从零开始,从0到11不等。迭代数组,当日期更大时,今天显示两者之间的日期:

    var calcPayDate = function () {
        var payDates = [];
        payDates.push(new Date(2011, 0, 1));
        payDates.push(new Date(2011, 1, 15));
        payDates.push(new Date(2011, 2, 12));
        payDates.push(new Date(2011, 3, 20));

        var today = new Date();
        for (var i = 0; i < payDates.length; i++) {
            if (payDates[i] > today) {
                document.getElementById('countdownDiv').innerHTML = calcDays(payDates[i], today);
                break;
            }
        }
    }

    var calcDays = function(date1, date2) {

        // The number of milliseconds in one day
        var ONE_DAY = 1000 * 60 * 60 * 24

        // Convert both dates to milliseconds
        var date1_ms = date1.getTime()
        var date2_ms = date2.getTime()

        // Calculate the difference in milliseconds
        var difference_ms = Math.abs(date1_ms - date2_ms)

        // Convert back to days and return
        return Math.round(difference_ms / ONE_DAY)

    }

calcDays函数是this site

上的函数

这些日子放在一个名为'countdownDiv'的div中。

答案 1 :(得分:0)

在网上搜索“JavaScript教程”。

与此同时,这里有一些代码可以帮助您入门:

var dates = [
    new Date(2011, 0,  1),  // note that format is year, month-1, day
    new Date(2011, 1, 15),  // don't ask me why
    new Date(2011, 2, 12),
    new Date(2011, 3, 20)
];

var now = new Date();

for (var i in dates) {  // this is a foreach loop
    if (now < dates[i]) {
        document.write(Math.ceil((dates[i] - now) / 86400000));
        break;
    }
}