在 30 秒和地板上舍入分钟
Rounding Up Minute at 30 Seconds and Flooring
我有一个看起来像这样的时间值:totalDuration: 00:22:53
。我想要做的是在 seconds >= 30
时将此值的秒数四舍五入,以便将其四舍五入到下一分钟并将秒数归零。
换句话说,我的 00:22:53
示例最终应该是 00:23:00
。
为此我尝试了这个:
const timeRoundedUp = moment(totalDuration).add(1, 'm').startOf('minute');
但这给了我一个 null
结果。
我也试过这个:
const roundedUp = moment(totalDuration).add(1, 'minutes');
但这也给了我一个 null
结果。
也许问题是我输入到函数中的值的格式?我怎样才能做到这一点?
您必须在初始化正确的对象时指定持续时间的格式
let totalDuration = '00:22:53'
const m = moment(totalDuration, "hh:mm:ss");
// conditionally round the seconds
const roundUp = m.second() >= 30 ? m.add(1, 'minute').startOf('minute') : m.startOf('minute')
console.log(roundUp.format("HH:mm:ss"));
我有一个看起来像这样的时间值:totalDuration: 00:22:53
。我想要做的是在 seconds >= 30
时将此值的秒数四舍五入,以便将其四舍五入到下一分钟并将秒数归零。
换句话说,我的 00:22:53
示例最终应该是 00:23:00
。
为此我尝试了这个:
const timeRoundedUp = moment(totalDuration).add(1, 'm').startOf('minute');
但这给了我一个 null
结果。
我也试过这个:
const roundedUp = moment(totalDuration).add(1, 'minutes');
但这也给了我一个 null
结果。
也许问题是我输入到函数中的值的格式?我怎样才能做到这一点?
您必须在初始化正确的对象时指定持续时间的格式
let totalDuration = '00:22:53'
const m = moment(totalDuration, "hh:mm:ss");
// conditionally round the seconds
const roundUp = m.second() >= 30 ? m.add(1, 'minute').startOf('minute') : m.startOf('minute')
console.log(roundUp.format("HH:mm:ss"));