2015-11-08 2 views
1

Итак, у меня есть этот JavaScript и вы хотите использовать время UTC.Как сделать это время обратного отсчета JavaScript временем UTC?

Я хочу использовать его «Date.UTC», но я не уверен, как его реализовать.

Таким образом, вместо этого

CountDownTimer ('02/20/2016 10: 1 утра», '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); 
} 

ответ

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()); 

Это даст вам время UNIX (мс) в формате UTC.

DEMO 1, используя первый пример: http://jsfiddle.net/4z5x6go5/ однако вы можете заметить, что все же дата, которую вы вставляете, хотя и будет вашим местным временем, а затем преобразуется в UTC. DEMO 2 с использованием момента: возьмет ввод как UTC: http://jsfiddle.net/qzL4rpzg/2/

+0

Не могли бы вы привести пример со всем сценарием? Я довольно новичок в JavaScript, и я все еще не уверен. Спасибо за помощь. – Nick

+0

@warmfallout http://jsfiddle.net/4z5x6go5/ – rpirsc13

+0

DEMO 2, похоже, вводит и выводит локальное время. Кажется, он ничего не делает с utc. Попытка ввода и вывода utc в этом формате: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC – Nick

Смежные вопросы