Ответ 1
Не обращай на это внимания. Вместо этого используйте различные выходные функции, такие как .format()
. Смотрите руководство Moment.js по этой теме.
У внутренних элементов момента есть некоторые причуды из-за того, как работает объект Date
. Все функции в общедоступном API принимают их во внимание, но вы, вероятно, не захотите разобраться с ними самостоятельно.
Просто чтобы быть полным, я уточню их назначение:
-
_i
- вход, используемый при создании объектаmoment
. Это может быть строка, число, массив или объектDate
.Однако, если передается другой
moment
объект,_i
будет скопирован в эти моменты_i
, и другие свойства также будут скопированы._i
никогда не будетmoment
объектом._i
также может быть неопределенным в случае создания текущего момента с помощьюmoment()
. -
_d
- это экземпляр объектаDate
который поддерживает объектmoment
.Если вы находитесь в "локальном режиме", то
_d
будет иметь ту же локальную дату и время, что и объект,_d
в общедоступном API.getTime
времени, возвращаемыеgetTime
илиvalueOf
, также будут совпадать.Если вы находитесь в "режиме UTC", то
_d
прежнему будет иметь ту же дату и время UTC, что и момент, когда объект отображается в общедоступном API. Это может сбивать с толку, так как вам нужно взглянуть наgetUTCDate
и другие функции на основе UTC в_d
, чтобы увидеть их соответствие. Отметки времени также будут совпадать и здесь.Если вы изменили смещение часового пояса с помощью
utcOffset
,zone
илиtz
, то значение_d
не может оставаться отдельным. Он также должен учитывать, определен ли_offset
. Если это так, то временная метка, поддерживающая объект_d
, должна сначала корректироваться на величину смещения. Вы можете увидеть это поведение в реализации методаvalueOf
здесь.
Это поведение для этих двух полей с текущей версии (2.10.6, как я пишу это). Однако есть и другие поля, и, поскольку это внутренние поля, вполне возможно, что поведение может измениться в будущей версии. В частности, см. Выпуск № 2616.