JQuery-将毫秒格式化为HH:MM:SS:sss

JQuery-将毫秒格式化为HH:MM:SS:sss,jquery,milliseconds,Jquery,Milliseconds,我尝试使用此函数格式化以毫秒为单位的持续时间,但它对我无效: var msec_num = parseInt(duration, 10) / 100; var hours = Math.floor(msec_num / 3600 ); var minutes = Math.floor((msec_num - (hours * 3600)) / 60); var seconds = Math.floor((msec_num - (hours * 360

我尝试使用此函数格式化以毫秒为单位的持续时间,但它对我无效:

var msec_num      = parseInt(duration, 10) / 100; 
var hours        = Math.floor(msec_num / 3600 );
var minutes      = Math.floor((msec_num - (hours * 3600)) / 60);
var seconds      = Math.floor((msec_num - (hours * 3600) - (minutes * 60)) / 60 / 1000 );
var milliseconds = ( msec_num - ((hours * 3600) - (minutes * 60) - (seconds)) / 1000 ) * 100;

if (hours   < 10) {hours   = "0"+hours;}
if (minutes < 10) {minutes = "0"+minutes;}
if (seconds < 10) {seconds = "0"+seconds;}
if (milliseconds < 10) {milliseconds = "0"+milliseconds;}

var time    = hours + ":" + minutes + ":" + seconds + ":" + milliseconds;
var msec_num=parseInt(持续时间,10)/100;
变量小时数=数学下限(毫秒数/3600);
var分钟=数学地板((毫秒数-(小时*3600))/60);
var秒=数学地板((毫秒数-(小时*3600)-(分钟*60))/60/1000);
变量毫秒=(毫秒数-((小时*3600)-(分钟*60)-(秒))/1000)*100;
如果(小时<10){hours=“0”+小时;}
如果(分钟<10){minutes=“0”+分钟;}
如果(秒<10){seconds=“0”+秒;}
如果(毫秒<10){millides=“0”+毫秒;}
变量时间=小时+“:“+分钟+”:“+秒+”:“+毫秒;
如果我使用值(持续时间=1091ms)进行测试,它会给我以下信息:00:00:00:1091


我如何才能找出所有值都能完美工作???

看起来您对
100
有问题,而不是
1000

var duration = 1091;
var milliseconds = (duration % 1000); duration = Math.floor(duration/1000);
var seconds = (duration % 60); duration = Math.floor(duration/60);
var minutes = (duration % 60); duration = Math.floor(duration/60);
var hours = duration;

看起来您在
100
而不是
1000

var duration = 1091;
var milliseconds = (duration % 1000); duration = Math.floor(duration/1000);
var seconds = (duration % 60); duration = Math.floor(duration/60);
var minutes = (duration % 60); duration = Math.floor(duration/60);
var hours = duration;
试试这个--一个用于解析、验证、操作和格式化日期的javascript日期库。

试试这个--一个用于解析、验证、操作和格式化日期的javascript日期库。

使用的“”使它变得简单

var duration = moment.duration(parseInt(duration, 10));
var addZero = function(v) { return (v<10 ? '0' : '') + Math.floor(v); };

var time = addZero(duration.hours()) +
     ':' + addZero(duration.minutes()) +
     ':' + addZero(duration.seconds()) +
     ':' + addZero(duration.milliseconds());
var duration=moment.duration(parseInt(duration,10));
var addZero=函数(v){返回(v

var duration = moment.duration(parseInt(duration, 10));
var addZero = function(v) { return (v<10 ? '0' : '') + Math.floor(v); };

var time = addZero(duration.hours()) +
     ':' + addZero(duration.minutes()) +
     ':' + addZero(duration.seconds()) +
     ':' + addZero(duration.milliseconds());
var duration=moment.duration(parseInt(duration,10));

var addZero=function(v){return(v

moment(parseInt(duration, 10)).format('h:mm:ss');

如果我错了,请纠正我。

如果我阅读Moment.js的文档,它会变得容易得多:

moment(parseInt(duration, 10)).format('h:mm:ss');

如果我错了,请纠正我。

我不明白???@kach 1秒包含1000miliseconds@kach对,在上面的操作之后,duration将只存储hours part,其中是var duration中每毫秒、秒和分钟的减法?查看我的代码我是如何做到的,我不明白???@kach 1秒由1000毫秒组成@kach是的,在上面的操作之后,duration将只存储hours part,其中是var duration中每毫秒、秒和分钟的减法?请参阅我的代码,我是如何处理日期格式的jquery的-好:)可能与日期格式的jquery重复-好:)可能重复我如何用两位数字设置毫秒格式??类似下面的内容->如果我比show:19慢192ms->如果我比show:08w慢82ms,我已经除以了(duration.millizes()/10).Thank's@BenjaminHow我可以用两位数字设置毫秒的格式??类似这样的->如果我比show:19慢192ms->如果我比show:08w慢82ms,我已经除以了(duration.millizes()/10)。Thank's@Benjamin