Я получил этот массив с дней:Как сравнить две даты в различных форматах в JavaScript/JQuery
var dates = [
/* 2016 */
"October 28, 2016","November 17, 2016","December 24, 2016","December 25, 2016","December 26, 2016",
/* 2017 */
"January 1, 2017","March 3, 2017","April 17, 2017","May 1, 2017","May 8, 2017","July 5, 2017","July 6, 2017","September 28, 2017","October 28, 2017","November 17,2017","December 24, 2017","December 25, 2017","December 26, 2017"
]
и я хочу, чтобы сравнить их с завтрашнего дня, поэтому я создал переменную завтра
var tomorrow = new Date();
tomorrow .setDate(tomorrow.getDate() + 1);
tomorrow .setHours(0);
tomorrow .setMinutes(0);
tomorrow .setSeconds(0);
tomorrow .setMilliseconds(0);
Когда я пытаюсь dates.indexOf(tomorrow)
Я получаю результат -1
.
Значение tomorrow
является Fri Oct 28 2016 00:00:00 GMT+0200 (Střední Evropa (letní čas))
EDIT: я изменил даты массив
var dates = [
/* 2016 */
new Date("October 28, 2016"), new Date("November 17, 2016"), new Date("December 24, 2016"), new Date("December 25, 2016"), new Date ("December 26, 2016"),
/* 2017 */
new Date("January 1, 2017"), new Date("March 3, 2017"), new Date("April 17, 2017"), new Date("May 1, 2017"), new Date("May 8, 2017"), new Date("July 5, 2017"), new Date("July 6, 2017"), new Date("September 28, 2017"), new Date("October 28, 2017"), new Date("November 17,2017"), new Date("December 24, 2017"), new Date("December 25, 2017"), new Date("December 26, 2017")
]
и теперь, когда я сравниваю значение tomorrow
«s, который Fri Oct 28 2016 00:00:00 GMT+0200 (Střední Evropa (letní čas))
с функцией dates.indexOf(tomorrow)
, я все равно получите результат -1
.
dates[0]
значение Fri Oct 28 2016 00:00:00 GMT+0200 (Střední Evropa (letní čas))
значение
tomorrow
«s является Fri Oct 28 2016 00:00:00 GMT+0200 (Střední Evropa (letní čas))
Это же, почему результат не 0
?
Вы можете сделать это с помощью чистого javascript, но обработка даты в javascript не простая, .. Есть такие библиотеки, как http://momentjs.com/, которые делают это намного проще. – Keith
Ваш массив массивов представляет собой массив текста. Я бы предложил вам Google, как работать с датами в javascript. – OrangeKing89
Не связано с вопросом, но вместо того, чтобы вручную создавать новую дату каждый раз, вы можете использовать функцию '.map()', чтобы сделать жизнь немного легче. Пример: 'var date = [/ * Даты в виде строки. * /]. map (function (d) {return new Date (d)}) '. –