2013-03-12 4 views
2

Im пытается рассчитать дни между двумя датами, но я не хочу просто разницу в днях, что я должен написать сценарий, чтобы показать мне все фактические даты между этими двумя заданными датами .. Например у меня есть 2 даты:jquery разница между датами

3/12/2013 и 3/15/2013

я хочу как-то, чтобы получить эти даты: 3/12/2013, 3/13/2013, 3/14/2013, 3/15/2013

Вот код ив написал, но это только возвращает разницу в днях

$(document).ready(function() { 

    var From = "03-12-2013"; 
    var To = "03-15-2013"; 
    var d1 = jQuery.datepicker.parseDate("mm-dd-yy", From); 
    var d2 = jQuery.datepicker.parseDate("mm-dd-yy", To); 

    var diff = 0; 
    if (d1 && d2) { 
     diff = Math.floor((d2.getTime() - d1.getTime())/86400000); // ms per day 
    } 
    console.log(diff); 
}); 

спасибо

+0

Я действительно не знаю DatePicker, но если есть способ вычитать или добавить один день до даты вы можете попробовать петлю с одной даты на другую, каждый раз добавляя/вычитая день и сохранение эта измененная дата. Но после быстрого поиска в документации API я не мог найти ничего подобного, но, возможно, вы знаете, как это сделать. –

ответ

1

Не глядя на DatePicker (возможно, есть метод уже дает вам то, что вам нужно) на основе кода вы могли бы просто сделать что-то вроде этого:

var milisperday = 86400000, 
    days = [], 
    offset = (d1<d2)?d1:d2; 

for (var i = 1;i<=diff;i++){ 
    days.push(new Date(offset.getTime() + milisperday * i)); 
} 

console.log(days); 

Теперь days это массив, содержащий ваши желаемые дни как объекты даты.

Example

+0

Спасибо за ответ. Мне удалось заставить его сработать, проблема в том, что он «думает», что все месяцы имеют 30 дней, поэтому, если я попытаюсь найти разницу между 30/03/2013 и 05/04/2013, показывает мне 4 дня, то же, что и 01/04/2013 и 05/04/2013 –

+0

@ lucky13 работает для меня: http://jsfiddle.net/7tQ4B/ – Christoph

+0

В ссылке jsfiddle я получаю только это [] в консоли –

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