秒数を ISO 形式に変換する

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、JavaScript の formatSeconds 関数を調べます。この関数は、与えられた秒数を時、分、秒に適切に分割して、ISO 形式で返します。Array.prototype.map()Math.floor()String.prototype.padStart()Array.prototype.join() を使って値をフォーマットして文字列に結合する方法を学びます。この実験が終わるとき、JavaScript で時間データを操作してフォーマットする方法をしっかりと理解しているようになります。

秒数を ISO 時間形式にフォーマットする関数

このコードを使用するには、ターミナル/SSH を開いて node と入力します。この関数は、秒数を引数として受け取り、ISO 時間形式を返します。その動作方法は以下の通りです。

  • 秒数を適切な値で割って、hourminutesecond に対応する値を取得します。
  • 数値の符号を変数に格納して、結果の先頭に付けます。
  • Array.prototype.map()Math.floor()String.prototype.padStart() と組み合わせて、各セグメントを文字列化してフォーマットします。
  • Array.prototype.join() を使用して値を文字列に結合します。

以下がコードです。

const formatSeconds = (s) => {
  const [hour, minute, second, sign] =
    s > 0
      ? [s / 3600, (s / 60) % 60, s % 60, ""]
      : [-s / 3600, (-s / 60) % 60, -s % 60, "-"];

  return (
    sign +
    [hour, minute, second]
      .map((v) => `${Math.floor(v)}`.padStart(2, "0"))
      .join(":")
  );
};

これらの例で関数をテストできます。

formatSeconds(200); // '00:03:20'
formatSeconds(-200); // '-00:03:20'
formatSeconds(99999); // '27:46:39'

まとめ

おめでとうございます!あなたは「秒数を ISO 形式に変換する」実験を完了しました。あなたの技術を向上させるために、LabEx でさらに多くの実験を行って練習してください。