2017-01-02 9 views
2

Я пытаюсь сделать обратный отсчет времени до открытия 20 января 2017 года примерно в 12:00 вечера, используя flipclock.jsРазница во времени между двумя датами в javascript?

Как рассчитать разницу (в секундах) между текущим временем и что дата/время?

я в настоящее время:

var inauguration = new Date("January 20, 2017 12:00:00"); 
var now = Date.now(); 
var diff = inauguration - now; 
var clock = $('#clock').FlipClock(diff, { 
    countdown: true, 
    clockFace: "DailyCounter" 
}); 

Понял работает:

var inauguration = new Date(2017, 00, 20, 12, 0, 0, 0); 
    var now = Date.now(); 
    var diff = inauguration.getTime() - now; 
    diff = diff/1000; 
    var clock = $('#clock').FlipClock(diff, { 
     countdown: true, 
     clockFace: "DailyCounter" 
    }); 
+0

@Dalorzo Ну, нет. Это нечто другое. –

+1

Ха-ха-да, хотя я думаю, что это немного отличается от того, что связано с @Dalorzo. Мы получили его работу с ответом ниже. Работа в команде делает работу мечты ': D' –

+0

При создании даты не разбирайте строку, передавайте аргументы непосредственно конструктору Date:' new Date (2017,0,20,12) '. Это менее типично и менее проблематично, учитывая, что встроенный синтаксический анализ в основном зависит от реализации. ;-) – RobG

ответ

3

inauguration В настоящее время является Date объектом. Вы можете получить количество секунд на функцию .getTime(). Вам нужно изменить:

var diff = inauguration.getTime() - now; 
//---------------------^^^^^^^^^^ 

Ваш рабочий код должен быть:

var inauguration = new Date(2017, 00, 20, 12, 0, 0, 0); 
var now = Date.now(); 
var diff = inauguration.getTime() - now; 
diff = diff/1000; 
var clock = $('#clock').FlipClock(diff, { 
    countdown: true, 
    clockFace: "DailyCounter" 
}); 

Идея getTime() была частью решения, а вместе с несколькими другими незначительными изменениями приведенный выше код теперь работает ,

Кроме того, оригинальная реализация работ, а также:

var inauguration = new Date("January 20, 2017 12:00:00"); 
 
var now = Date.now(); 
 
var diff = (inauguration.getTime() - now)/1000; 
 
var clock = $('#clock').FlipClock(diff, { 
 
    countdown: true, 
 
    clockFace: "DailyCounter" 
 
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/flipclock/0.7.8/flipclock.css" rel="stylesheet" /> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/flipclock/0.7.8/flipclock.min.js"></script> 
 
<div id="clock"></div>

+0

Хмм ... это дает мне 18693 дня. Любая идея, что не так? –

+0

Я получил это после того, как посмотрел на это: http://stackoverflow.com/questions/2024198/how-many-seconds-between-two-dates –

+0

@ParkerThomas Скажите мне, в чем проблема, я обновлю свой ответ, поэтому что вы можете принять его. –

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