2013-11-11 2 views
3

Я пытаюсь использовать moment.js для подобных вычислений как python timedelta.Получение момента moment.js 0 в unix timestamp

, что у меня есть проблемы с это:

var d = moment(0); 
d 
Moment {_i: 0, _f: undefined, _l: undefined, _isUTC: false, _d: Thu Jan 01 1970 02:00:00 GMT+0200 (EET)…} 
_d: Thu Jan 01 1970 02:00:00 GMT+0200 (EET) 
_f: undefined 
_i: 0 
_isUTC: false 
_l: undefined 
__proto__: Object 
d.hours(); 
2 
d.days(); 
4 

Как я могу получить момент метку времени, равный Отметка времени Unix 0, вызывают у (0), кажется, не дает мне момент, когда дни, часы, секунды и этажерка все 0 и который преобразуется в метку времени 0 с форматом moment.js «X» (link)

в ответ на комментарий: Обычно timepickers работы собирания времени определенной даты/день. И значение timepicker 14:35 обычно интерпретируется как 14 часов и 35 минут. Вы МОЖЕТЕ использовать один и тот же выборщик, чтобы позволить пользователю выбрать PERIOD (или timedelta), а не TIME. Это означало бы, что между чем-то есть 14 часов и 35 минут, или что-то в это время ... так ...

И вы можете использовать moment.js для имитации этой функциональности. Потому что:

moment(0).utc().hours == 0 
moment(0).utc().minutes == 0 
moment(0).utc().seconds == 0 

Вы можете просто добавить (или добавить пользователя) часы, минуты, секунды, чтобы выбрать не время, а ПЕРИОД. Или timedelta. К сожалению, это не удается, когда период длится более 24 часов. потому что момент (0) .utc(). days() равен 4 не 0.

Не знаю, почему это ПОЧЕМУ имеет значение, когда по всем причинам я могу думать о моменте (0) .utc(). days()) должен быть 0 не 4 ...

+0

'вар d = момент (0) .utc(); 'Я думаю, что вам нужно сказать, что момент этой«метки времени «находится в UTC. –

+0

Кроме того, почему именно вы делаете 'moment (0)'? –

+0

момент (0) .utc(). Days(); все еще распечатывает 4. Я объяснил, о чем идет речь. Я хочу представить время пользователю как timedelta (разница между двумя временными метками), а не как определенная метка времени. Python datetime.timedelta отлично подходит для этого. Я думал, что смогу имитировать такую ​​же функциональность с помощью функции moment.js, но пока кажется, что я не могу заставить ее работать так. –

ответ

2

Я думаю, что ваш нарваться проблемы с часовым поясом, момент обнаруживает вас. Если вы

moment(0).toISOString() 

вы должны увидеть 0s на все дни и т.д. вы может установить часовой пояс в UTC, сделав что-то вроде

var a = moment(0); 
a.utc(); 
a.toString() 

Теперь a.toString будет отображаться как правильный часовой пояс. .

Кроме того, момент (0) .utc() дней() является "среда"

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