Путаница в полдень и полночь с date.js

Я использую 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?


person Chris Farmer    schedule 15.09.2011    source источник
comment
Какую версию ты используешь? У меня работает, оба способа дают одинаковый результат...   -  person davin    schedule 16.09.2011
comment
@davin Я использую текущий datejs.googlecode.com/files/date.js связь. Может ли это быть связано с моими текущими настройками локали?   -  person Chris Farmer    schedule 16.09.2011
comment
Та же ошибка обнаружена в другом вопросе. Последняя версия решает эту проблему, но последняя версия не публикуется на веб-сайте datejs.com: с 12:00"> stackoverflow.com/questions/6444775/datejs-problem-with-1200-pm   -  person steampowered    schedule 30.11.2012


Ответы (2)


Похоже на проблему с версией:

http://jsfiddle.net/4QK8Q/
http://jsfiddle.сеть/JKg3n/

Первый — ваш файл (из базы кода google), второй — с их сайта (datejs.com). Как ни странно, они выглядят как одна и та же версия, но, очевидно, это не так. Я недостаточно знаком с библиотекой, чтобы сказать, что происходит, но предлагаю отправить отчет об ошибке.

person davin    schedule 15.09.2011

Это довольно старый вопрос, но для тех, кто может наткнуться на него в поиске, настоятельно рекомендуется переключиться на поддерживаемую в настоящее время версию Date.js (https://github.com/abritinthebay/datejs/), если вы столкнулись с непредвиденным поведением.

Версии в кодовой базе Google и на datejs.com содержат неисправленные ошибки, которые вряд ли когда-либо будут устранены, поскольку первоначальный разработчик, похоже, отказался от проекта.

person Ectropy    schedule 19.06.2014