Я использую date.js в своем проекте и сталкиваюсь с тем, чего не ожидал по отношению к датам, которые имели компоненты времени ровно полдень или ровно полночь.
Когда я использую собственный метод Date.parse
javascript, я получаю ожидаемый результат при разборе даты:
// plain old javascript
var date = new Date(Date.parse("10/21/2010 12:00:00 PM"));
alert(date);
Я получаю это:
Чт, 21 октября 2010 г., 12:00:00 GMT-0500 (центральное летнее время)
Я интерпретирую это как полдень 21 октября 2010 года, что, как мне кажется, является датой ввода. Однако, когда я импортирую date.js и пробую что-то подобное,
// using date.js
var date = Date.parseExact("10/21/2010 12:00:00 PM", "M/d/yyyy hh:mm:ss tt");
alert(date);
Я получаю это:
Пт, 22 октября 2010 г., 00:00:00 GMT-0500 (центральное летнее время)
Мне кажется, что это полночь следующего дня. Я понятия не имею, почему он интерпретирует это как полночь или, во всяком случае, почему он интерпретирует это иначе, чем Date.parse
по умолчанию в javascript. Я смущен значением 12:00? Я неправильно использую parseExact date.js?