2016-01-25 3 views
2

Я создаю таймер обратного отсчета, который отсчитывает до даты, которая введенная в коде, например, 6 апреля 2016 годаJquery Таймера дни/месяцы/года

До сих пор я получил его выводить количество дней, но я не могу понять, как сделать количество месяцев и лет. Мне не нужны часы минуты или секунды!

код в app.js

$(document).ready(function(){ 
    eventTime = '6 April 2016'; 
}) 

Код в countdown.js:

(function($){ 
$.fn.countdown = function(options) { 

    var settings = { date: null }; 

    if (options) { 
     $.extend(settings, options); 
    } 

    this_sel = $(this); 

    function count_exec() { 
     eventDate = Date.parse(settings['date'])/1000; 
     currentDate = Math.floor($.now()/1000); 

     seconds = eventDate - currentDate 

     days = Math.floor(seconds/(60 * 60 * 24)); 
     months = Math.floor(seconds/(60 * 60 * 12)); 
     alert(days); 
    } 

    count_exec(); 
} 
})(jQuery); 

ответ

2

Учитывая две даты, используйте следующий код, чтобы вычислить их разницу в миллисекундах, а затем в секундах, минутах, часы, дни и месяцы:

var currentDate = new Date(); 
var eventDate = new Date(2016, 3, 6); // months start from 0 
var milliseconds = eventDate.getTime() - currentDate.getTime(); 
var seconds = parseInt(milliseconds/1000); 
var minutes = parseInt(seconds/60); 
var hours = parseInt(minutes/60); 
var days = parseInt(hours/24); 
var months = parseInt(days/30); 
seconds -= minutes * 60; 
minutes -= hours * 60; 
hours -= days * 24; 
days -= months * 30; 

Для более точной разницы в месяцах взгляните на Difference in Months between two dates in JavaScript.

+1

Вы забыли объявить переменные 'time' и' years', можете ли вы его обновить? Благодарю. –

+0

Но это все еще не дает мне сколько месяцев до этого события ... –

+2

Не каждый месяц имеет 30 дней, вы знаете ... –

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