2017-04-03 5 views
0

マイクロ秒を人間が判読可能な形式に変換する必要があります。 MM:私はHHに変換できるようになる一方で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 } 

} 

で仕事をしたいと思います(存在する場合)おそらく私は知っている方が良いと思う複数の理由のためにおそらく機能しません、しかし、私は本当に従来の読みやすい出力が必要です。すべてのヒント/提案は高く評価されています!

+2

[ミリ秒を人間が判読できる形式に変換する方法]の複製がありますか?(http://stackoverflow.com/questions/175554/how-to-convert-milliseconds-into-human-readable-form) –

+0

マイクロ秒ですか?あなたはマイクロが10^-3ミリであることを知っていますか? –

+0

@GerardoFurtado easy ...新しいみんなに親切。 – itamar

答えて

0

残念ながら、上記のコードは、おそらく私が知っている方が良いと思いれる複数 の理由から、

を動作しませんあなたのreturn文の構文が間違っている

あなたを交換してみてください最後に

return { hh : hh, mm : mm, ss : ss, ms : ms } 

return文は、の出力を使用しますあなたの質問を1として

var output = formatMark(157442234333332221); 
var finalOutput = Object.keys(output).map(function(key){ return key + ":" + output[key] }).join(","); 
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; 
} 

この関数は、読み込み可能な時間文字列の配列を受け取ります。

関連する問題