Moment.js小数到时间格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Moment.js小数到时间格式相关的知识,希望对你有一定的参考价值。

我试图将像1.25这样的小数格式化为如下格式。

我正在使用FullCalendar。

我要做的是从日历中删除事件,但使用适当的data-duration属性将它们放回到外部事件队列中。

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

等等

我将始终只在15分钟的间隔内工作。

moment.js有可能吗?

谢谢!

答案

我认为,对于这个简单的目的而言,这将是一种过度杀伤力。您可能希望使用vanilla 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'

一些解释:

Math.floor(num) % 24 - 获得小时数

'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) - 获得前两个字符串;

以上是关于Moment.js小数到时间格式的主要内容,如果未能解决你的问题,请参考以下文章

moment.js使用方法

Moment.js 中的 DD/MM/YYYY 日期格式

格式化 javascript 函数以将匹配映射到时间组

vue时间字符串"2021年12月20日"转date对象 返回 Invalid date的问题

jQuery时间格式插件-moment.js的使用

使用 Moment.js 格式化日期