2015-11-17 2 views
1

Я пытаюсь отформатировать десятичную дробь как 1.25 в формате следующим образом.Moment.js decimals во временном формате

Я работаю с FullCalendar.

Что я пытаюсь сделать, это удалить события из календаря, но поместить их обратно во внешнюю очередь событий с соответствующим атрибутом data-duration.

1 -> 01:00 
1.25 -> 01:15 
1.5 -> 01:30 
1.75 -> 01:45 

т.д.

Я всегда буду только работать с интервалом в 15 минут.

Возможно ли это с moment.js?

Спасибо!

ответ

2

Я предполагаю, что momentjs будет излишним для этой простой цели. Вы можете использовать ванильный JS, чтобы получить десятичные отформатированные в этой моде

function parse(num) { 
    return ('0' + Math.floor(num) % 24).slice(-2) + ':' + ((num % 1)*60 + '0').slice(0, 2); 
} 

parse(24.5) -> '00:30' 
parse(1.25) -> '01:15' 
parse(1.5) -> '01:30' 
parse(1.75) -> '01:45' 

Некоторые пояснения:

! - получите количество часов

! '0'+ Math.floor(num) % 24 - номер принуждения в строку с ведущим нолем

! ('0' + Math.floor(num) % 24).slice(-2) - получить последние два символа в строке

! (num % 1) - получать минуты как часть десятичной доли

! (num % 1)* 60 + '0' - принуждение к минутам с конечным нолем

! (num % 1)*60 + '0').slice(0, 2) - получить первые два символа в строке;

+0

Спасибо! Прекрасно работает. Moment.js уже загружался на страницу, поэтому я подумал, что может быть функция it it is library - но это работает! – stillfire

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