2014-12-19 3 views
0

Из массива:Как создать массив интервалов дат из массива статических дат в Javascript?

["01/01/2015", "02/01/2015", "03/01/2015", "05/01/2015", "06/01/2015"]; 

к

[{begin_date: "01/01/2015", end_date: "03/01/2015"}, { begin_date: "05/05/2015", end_date: "06/01/2015 }]; 

Есть ли библиотека для этого типа функций?

Редактировать Больше информации: Я хотел бы преобразовать первый массив статических дат в массив объектов, представляющих временные интервалы.

+0

Похоже, вы пытаетесь построить строку JSON правильно? –

+0

Да. Моя структура таблицы в задней части, по-видимому, лучше всего в формате start_date | Дата окончания. – Trace

+0

Почему downvotes? Недействительный вопрос программирования? Похоже, что это полезная библиотека, но еще не нашли ее в Google ... – Trace

ответ

0

Я работаю с объектами Moment и подчеркиваю. Я закончил со следующим рабочим кодом:

 //Create arrays 
     var coll_dateIntervals = []; 
     var arr_temp = []; 
     _.each(collDates, function(moment_date, index, list){ 
      //Day difference in # of days 
      var diff = Math.abs(collDates[index].diff(collDates[index + 1], "days")); 

      //Add begin_date 
      arr_temp.push(moment_date); 
      //Check the date difference in days. 
      if(diff <= 1 && diff !== undefined){ 
       //If the difference is 1, than add the date to the temporary array 
       arr_temp.push(moment_date); 
       //If it's more than 1 day, or the last object 
      } else if (diff > 1 || diff === undefined){ 
       //Store the interval in an object 
       var obj_dateInterval = { start_date: arr_temp[0].format("DD/MM/YYYY"), end_date: arr_temp[arr_temp.length - 1].format("DD/MM/YYYY")}; 
       coll_dateIntervals.push(obj_dateInterval); 

       //Empty the array to start the new loop 
       arr_temp = []; 
      }; 
     }); 
     console.log(coll_dateIntervals); 

     //return coll_dateIntervals; 
Смежные вопросы