如何使这个JavaScript倒计时使用UTC时间?

时间:2015-11-08 19:26:53

标签: javascript date time timer countdown

所以我有这个JavaScript,想要使用UTC时间。

我想使用" Date.UTC"但我不确定如何实施它。

所以不是这个

  

CountDownTimer(' 02/20/2016 10:1 AM',' EST');

我希望它这样做(UTC格式)

  

CountDownTimer(' 2015,10,10',' EST');

试图找出我需要做些什么来改变它。

CountDownTimer('02/20/2016 10:1 AM', 'EST');
CountDownTimer('02/20/2012 10:1 AM', 'CST');
CountDownTimer('02/20/2012 10:1 AM', 'MST');
CountDownTimer('02/20/2012 10:1 AM', 'PST');

function CountDownTimer(dt, id)
{
    var end = new Date(dt);

    var _second = 1000;
    var _minute = _second * 60;
    var _hour = _minute * 60;
    var _day = _hour * 24;
    var timer;

    function showRemaining() {
        var now = new Date();
        var distance = end - now;
        if (distance < 0) {

            clearInterval(timer);
            document.getElementById(id).innerHTML = 'EXPIRED!';

            return;
        }
        var days = Math.floor(distance / _day);
        var hours = Math.floor((distance % _day) / _hour);
        var minutes = Math.floor((distance % _hour) / _minute);
        var seconds = Math.floor((distance % _minute) / _second);

        document.getElementById(id).innerHTML = days + 'days ';
        document.getElementById(id).innerHTML += hours + 'hrs ';
        document.getElementById(id).innerHTML += minutes + 'mins ';
        document.getElementById(id).innerHTML += seconds + 'secs';
    }

    timer = setInterval(showRemaining, 1000);
} 

1 个答案:

答案 0 :(得分:2)

var end_utc = new Date(end.getUTCFullYear(), end.getUTCMonth(), end.getUTCDate(),  end.getUTCHours(), end.getUTCMinutes(), end.getUTCSeconds());

并使用end_utc变量。但是,在这种情况下,我建议使用moment.js,以便您更好地控制dates

此外,如果您想使用日期的UTC功能,您可以执行与上述相同的操作:

var d = Date.UTC(end.getFullYear(), end.getMonth(), end.getDate(),  end.getHours(), end.getMinutes(), end.getSeconds());

这将以UTC为单位给出unix时间(ms)。

DEMO 1使用第一个示例:http://jsfiddle.net/4z5x6go5/但是您可能会注意到,您插入的日期仍然是您当地的时间,然后它将转换为UTC。 DEMO 2使用时刻:将输入为UTC:http://jsfiddle.net/qzL4rpzg/2/