秒数を ISO 形式に変換する

JavaScriptJavaScriptBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/template_lit("Template Literals") subgraph Lab Skills javascript/variables -.-> lab-28318{{"秒数を ISO 形式に変換する"}} javascript/data_types -.-> lab-28318{{"秒数を ISO 形式に変換する"}} javascript/arith_ops -.-> lab-28318{{"秒数を ISO 形式に変換する"}} javascript/comp_ops -.-> lab-28318{{"秒数を ISO 形式に変換する"}} javascript/higher_funcs -.-> lab-28318{{"秒数を ISO 形式に変換する"}} javascript/template_lit -.-> lab-28318{{"秒数を ISO 形式に変換する"}} end

秒数を 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 でさらに多くの実験を行って練習してください。