2015-11-17 51 views
1

我试图像1.25的十进制格式成格式如下。Moment.js十进制数为时间格式

我与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已经被加载到页面上,所以我认为可能有一个函数它是库 - 但这是有效的! – stillfire