2014-10-24 3 views
0

Может кто-нибудь объяснить, почему MomentJS возвращает значение Fri Oct 24 2014 06:06:44 GMT-0400 (Eastern Standard Time), когда вызывается moment().utc("2014-09-22T00:00:00").toDate()? Документация доступна по адресу http://momentjs.com/docs/#/parsing/utc/, но ничто там не дало мне четкого указания на то, почему я получаю эти результаты.MomentJS и обработка по дате UTC

исполняемую образец кода вверх на http://jsfiddle.net/o9jqy2qo/2/ - вот что тот же код:

var dateStr = "2014-09-22T00:00:00"; 
var jsDateInfo = new Date(dateStr); 
var momentLocalInfo = moment(dateStr).toDate(); 
var momentUtcInfo1 = moment(dateStr).utc().toDate(); 
var momentUtcInfo2 = moment().utc(dateStr).toDate(); 

alert('dateStr = ' + dateStr + '\n' + 'new Date(dateStr) = ' + new Date(dateStr) + '\n' + 'moment(dateStr).toDate() = ' + moment(dateStr).toDate() + '\n' + 'moment(dateStr).utc().toDate() = ' + moment(dateStr).utc().toDate() + '\n' + 'moment().utc(dateStr).toDate() = ' + moment().utc(dateStr).toDate() + '\n'); 

Я знаю, что правильный способ получить результаты, которые я жду, чтобы позвонить moment("2014-09-22T00:00:00").utc().toDate(). Я просто хочу понять, что здесь происходит.

ответ

0

Для меня он возвращает GMT-0600 (MST). Без предоставления часового пояса или смещения момент принимает локальное смещение по времени, как утверждается как часть конфигурации вашего браузера.

Похоронен в moment.js docs:

Если вы не указали часовой пояс смещение, разбор строки создаст дату в текущем часовом поясе.

+0

Derp - Думаю, я неправильно понял последнюю часть моей строки. Я думал, что это подразумевает часовой пояс, когда действительно это временная составляющая строки. –

Смежные вопросы