我需要将微秒转换为人类可读的格式。虽然我可以将它转换为HH:MM:SS.MS,但我不确定剥离00的最佳方式:如果存在我想使用这些
input = [ 12040000, 60042000, 15582000000 ]
output = [ '12.04', '1:00.42', '4:19:27' ]
function formatMark(mu) {
var timeList = []
var ms = mu / 1000
var time = new Date(ms)
var ms = time.getMilliseconds()
var ss = time.getSeconds()
var mm = time.getMinutes()
var hh = time.getHours()
if (ms > 1) timeList.push(ms) //
if (ss > 1) timeList.push(ss) //
if (mm > 1) timeList.push(mm) //
if (hh > 1) timeList.push(hh) //
return { hh + ':' + mm + ':' + ss + '.' + ms }
}
不幸的是,上面的代码不起作用,可能出于多种原因,我知道更好,但我真的只需要一个传统的可读输出。任何提示/建议都表示赞赏!
答案 0 :(得分:0)
不幸的是,上面的代码不起作用,可能是多个代码 我知道更好的原因,
return
语句的语法错误
尝试用
替换return { hh : hh, mm : mm, ss : ss, ms : ms }
语句
formatMark
最后,使用var output = formatMark(157442234333332221);
var finalOutput = Object.keys( output ).map( function( key ){ return key + ":" + output[key] } ).join(",");
的输出作为
{{1}}
答案 1 :(得分:0)
根据您的问题,您将参数作为数组类型传递但该函数与此不兼容,您计算可读时间字符串的逻辑是正确的。唯一的问题是您需要为数组类型参数处理此问题。
function formatMark(mu) {
var timeList = []
mu.map(function(t){
var ms = mu / 1000
var time = new Date(ms)
var ms = time.getMilliseconds()
var ss = time.getSeconds()
var mm = time.getMinutes()
var hh = time.getHours()
if (ms > 1) timeList.push(ms) //
if (ss > 1) timeList.push(ss) //
if (mm > 1) timeList.push(mm) //
if (hh > 1) timeList.push(hh) //
var timeString=hh + ':' + mm + ':' + ss + '.' + ms
console.log(timeString)
timeList.push(timeString)
})
return timeList;
}
此函数接受数组并返回可读时间字符串数组。