Som*_*ser 2 javascript momentjs
我正在使用Moment.js跟踪我的应用中操作的持续时间。目前,我有以下代码:
var startMoment = null;
var actionClock = null;
function startClock() {
actionClock = setInterval(function(){
if (startMoment === null) {
startMoment = moment();
$('#duration').text('00:00:00');
} else {
var now = moment();
var span = moment.duration(now - startMoment);
$('#duration').text(span.minutes() + ':' + span.seconds() + '.' + span.milliseconds());
}
}, 1000);
}
function stopClock() {
clearInterval(actionClock);
var now = moment();
var span = moment.duration(now - startMoment);
$('#duration').text(span.minutes() + ':' + span.seconds() + '.' + span.milliseconds());
startMoment = null;
actionClock = null;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,持续时间的格式很尴尬。我想将持续时间显示为mm:ss.lll。换句话说,请始终在分钟上显示两位数字,在秒上显示两位数字,并在毫秒上显示三位数字。目前,我看到的时长打印为1:2.45。如何格式化通过Moment.js创建的持续时间?如果无法做到这一点,我应该使用另一个库来跟踪持续时间并显示它吗?
谢谢!
一种执行此方法的方法可能是将持续时间转换回一个瞬间(也许使用毫秒),然后使用该瞬间的格式。
moment.utc(span.asMilliseconds()).format('mm:ss.SSS');
Run Code Online (Sandbox Code Playgroud)
moment.utc(span.asMilliseconds()).format('mm:ss.SSS');
Run Code Online (Sandbox Code Playgroud)
var startMoment = null,
$durForm = $('#durationFormatted');
var actionClock = null;
function startClock() {
actionClock = setInterval(function() {
if (startMoment === null) {
startMoment = moment();
$('#duration').text('00:00:00');
$durForm.text('00:00.000');
} else {
var now = moment();
var span = moment.duration(now - startMoment);
$('#duration').text(span.minutes() + ':' + span.seconds() + '.' + span.milliseconds());
$durForm.text(moment(span.asMilliseconds()).format('mm:ss.SSS'));
}
}, 1000);
}
function stopClock() {
clearInterval(actionClock);
var now = moment();
var span = moment.duration(now - startMoment);
$('#duration').text(span.minutes() + ':' + span.seconds() + '.' + span.milliseconds());
$durForm.text(moment(span.asMilliseconds()).format('mm:ss.SSS'));
startMoment = null;
actionClock = null;
}Run Code Online (Sandbox Code Playgroud)