2016-01-16 2 views
0

// Это то, о чем я думал .. но я думаю, что формат текущей даты и указанный формат даты различны. Помоги пожалуйста.таймер обратного отсчета с текущей даты на конкретную дату в javascript

`<script> 
    var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds 
    var firstDate = new Date(); 
    var secondDate = new Date(2016,02,20); 
    var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay))); 
    document.getElementById("demo").innerHTML =diffDays; 
    </script>` 

ответ

0

Вы можете использовать что-то вроде

(new Date(new Date(2016, 01, 05).toDateString()).getTime() - new Date(new Date().toDateString()))/(24*60*60*1000) 

Существует разница между временем возвращается новым Date() и новая Дата (гггг, мм, дд). Поскольку первая дата будет возвращена с текущим временем, вторая вернет дату со временем как 00:00. Это повлияет на временную метку, поэтому результат будет разным.

И если у вас больше операций, связанных с датой, вы всегда можете использовать momentjs.

+0

Я хочу, чтобы запустить обратный таймер обратного отсчета. скажем, с сегодняшнего дня до 5 февраля, что для отображения всего лишь нескольких дней осталось. Итак, я попытался получить текущую дату из системы и подсчитать разницу между двумя датами. –

0

Date.prototype.getTime() возвращает разницу в милисекундах, поэтому вы должны разделить разницу во времени на oneDay (1000 * 3600 * 24).

var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds 
    var firstDate = new Date(); 
    var secondDate = new Date(2016,02,20); 
    var diffDays = Math.abs(firstDate - secondDate); 
    document.getElementById("demo").innerHTML = Math.round (diffDays/oneDay); 
+0

Спасибо за ответ, но было бы лучше, если бы вы включили полный код здесь, а не только ссылку на mdn/ – user2950593

+0

Добавленный код, разница только в последнем сыром. –

0

Вы можете сделать что-то вроде этого -

<script> 
    var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds 
    var firstDate = new Date(); 
    var secondDate = new Date(2016,02,20); 
    var diffDays = 'expired'; 
    if(secondDate>=firstDate){ 
     diffDays = parseInt((secondDate - firstDate)/oneDay) + ' days left'; 
    } 
    document.getElementById("demo").innerHTML =diffDays; 
</script> 

здесь скрипку fiddle