MomentJS几秒钟到一分钟 - AngularJS

时间:2018-06-11 10:02:33

标签: angularjs datetime momentjs

我有一个时间选择器,用户输入一个以十进制(8.5 for example for 8h30min)表示的时间段,但他也可以手动输入“从”和“到”句号,

所以例如 - > from: 08:00, to: 17:30,将传递的数据始终为十进制,在这种情况下为8.5

然后我有一个函数可以及时转换那个小数,并在某处显示为字符串。

问题是秒数没有向上舍入,例如,如果您放置: 9.23,在9h 13min 48sec小时内,该函数将返回此字符串:9h13min,这是向下舍入的,但我希望它始终将其四舍五入。

无法确定我的功能有什么变化,尝试添加1分钟然后使用startOf('分钟')但它似乎不适用于duration

这是函数,它接收一个数字,即十进制小时数:

getDurationAsString(hours: number): string {
            if (!hours || hours <= 0) return "";

            const mDuration = moment.duration(hours, "hours");
            return `${mDuration.asHours() > 0 ? Math.floor(mDuration.asHours()) + "h " : ""}${mDuration.minutes() > 0 ? mDuration.minutes() + "m" : ""}`;
        }

所以问题出在mDuration.minutes() + "m"

如何用momentJs将持续时间四舍五入到顶部?

1 个答案:

答案 0 :(得分:0)

我解决了这个问题:

'${mDuration.minutes() > 0 ? (mDuration.minutes()+(mDuration.seconds() > 30 ? 1 : 0)) + "m" : ""}`'

无论如何,谢谢你的输入!