2015-10-21 2 views
0

Я использую d3 для разбора времени, и он продолжает добавлять 7 часов к тому времени, когда я пытаюсь разобрать. Почему это? Вот мой код:d3 формат времени час добавление 7 часов

>> var f = d3.time.format("%x %X") 
undefined 
>> f.parse("10/13/2015 13:59:23") 
Date 2015-10-13T20:59:23.000Z 

Почему он делает это, и как я могу заставить его просто разобрать, что именно я перехожу в?

Я использую эту версию d3: https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js

Заранее спасибо

+0

См. Http://bl.ocks.org/jebeck/9671241 –

ответ

1

Date 2015-10-13T20:59:23.000Z является UTC.

Я подозреваю, что f.parse("10/13/2015 13:59:23") принимает локальные данные. Если вы utc-7, то это, скорее всего, причина, и вы не должны беспокоиться об этом, потому что в этом случае Date 2015-10-13T20:59:23.000Z равно Date 2015-10-13T20:59:23 UTC-7

+0

Хорошо, это имеет смысл. Могу ли я установить свой часовой пояс, чтобы d3 не пытался сделать это преобразование для меня? – Jeremy

+0

возвращает «объект» – Jeremy

+0

@Jeremy в соответствии с документом 'format.parse' возвращает объект даты: https://github.com/mbostock/d3/wiki/Time-Formatting#parse. Очевидно, вы просто показываете объект в консоли, что приводит к этому представлению. Попробуйте 'console.log (новая дата)' и увидеть результат – Sebas

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