Путаница в полдень против полуночи с date.js - PullRequest
1 голос
/ 16 сентября 2011

Я использую date.js в своем проекте, и я столкнулся с чем-то, чего я не ожидал в отношении дат, которые имели временные компоненты ровно в полдень или ровно в полночь.

Когда я использую нативный метод javascript Date.parse, я получаю ожидаемый результат при разборе даты:

// 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?

Ответы [ 2 ]

1 голос
/ 19 июня 2014

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

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

1 голос
/ 16 сентября 2011

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

http://jsfiddle.net/4QK8Q/
http://jsfiddle.net/JKg3n/

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

...