Javascript Date - PullRequest
       6

Javascript Date

2 голосов
/ 09 сентября 2010

Я пытаюсь получить диапазон месяцев для вставки в CAML-запрос, например: 2010-09-01 и 2010-09-30.

Я использовал следующий код для генерации этих двух значений:

var month = "10/2010";
var monthArray = month.split("/");
var startDate = new Date(monthArray[1], monthArray[0]-1, 1);
var endDate = new Date(startDate);
endDate.setMonth(startDate.getMonth()+1, startDate.getDate()-1);

Запуск этого кода:

alert("month: " + month + 
      "\nstartDate: " + startDate.toDateString() + 
      "\nendDate: " + endDate.toDateString()); 

генерирует правильные даты (корпоративная политика требует IE7):

---------------------------
Windows Internet Explorer
---------------------------
month: 10/2010
startDate: Fri Oct 1 2010
endDate: Sun Oct 31 2010
---------------------------
OK   
---------------------------

Однако, когда я пытаюсь выполнить анализ в формате ISO 8601 (для запроса CAML), я получаю неправильные даты.

var endISO8601 = endDate.getUTCFullYear() + "-" + 
                 endDate.getUTCMonth() + "-" + 
                 endDate.getUTCDate() + "T19:59:00Z";
alert("endDate: " + endDate.toDateString() + 
      "\nendISO8601: " + endISO8601);

---------------------------
Windows Internet Explorer
---------------------------
endDate: Sun Oct 31 2010
endISO8601: 2010-9-31T19:59:00Z
---------------------------
OK   
---------------------------

Мне, к сожалению, запрещено использовать Datejs.

1 Ответ

5 голосов
/ 09 сентября 2010

Я думаю, вы просто забыли добавить один к месяцу (январь равен 0 в javascript)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...