1. ホーム
  2. javascript

[解決済み] Javascriptでミリ秒を分、秒に変換する。

2023-02-04 06:52:15

質問

SoundcloudのAPIは、トラックの継続時間をミリ秒として提供します。JSONは次のようになります。

"duration": 298999

私はここで見つけた多くの関数を試しましたが、無駄でした。私はただ、その数字を次のようなものに変換するものを探しているのです。

4:59

近づいてはみたものの、うまくいかないものがあります。それは60で秒を止めません。99 まで行ってしまうので、意味がありません。例えば ms の値として "187810" を入力してみてください。

var ms = 298999,
min = Math.floor((ms/1000/60) << 0),
sec = Math.floor((ms/1000) % 60);

console.log(min + ':' + sec);

ご協力ありがとうございました。

時間への対応も追加していただけるとありがたいです。

どのように解決するのですか?

function millisToMinutesAndSeconds(millis) {
  var minutes = Math.floor(millis / 60000);
  var seconds = ((millis % 60000) / 1000).toFixed(0);
  return minutes + ":" + (seconds < 10 ? '0' : '') + seconds;
}

millisToMinutesAndSeconds(298999); // "4:59"
millisToMinutesAndSeconds(60999);  // "1:01"

ユーザーとして 助っ人 はコメントで指摘され、return文はこうあるべきでしょう。

return (
  seconds == 60 ?
  (minutes+1) + ":00" :
  minutes + ":" + (seconds < 10 ? "0" : "") + seconds
);