ホームページ  >  記事  >  ウェブフロントエンド  >  タイムスタンプを時刻形式に変換するjsのコードの詳細な説明

タイムスタンプを時刻形式に変換するjsのコードの詳細な説明

不言
不言オリジナル
2018-08-13 17:30:201635ブラウズ

この記事では、js でタイムスタンプを時刻形式に変換するコードについて詳しく説明します。必要な方は参考にしていただければ幸いです。

フロントエンドの開発プロセスでは、ユーザーが参照できるようにタイムスタンプを標準の時刻形式に変換することが必要になることがよくあります。メソッド ライブラリを使用せずに迅速かつ適切に実装するにはどうすればよいでしょうか?以下に 2 つの方法を紹介します。

古いメソッド

このメソッドは基本的に日常生活で使用され、Date メソッドを使用して年、月、日、時、分、秒を 1 つずつ計算し、必要な時刻の書式文字列につなぎます。

function transformTime(timestamp = +new Date()) {
    if (timestamp) {
        var time = new Date(timestamp);
        var y = time.getFullYear(); //getFullYear方法以四位数字返回年份
        var M = time.getMonth() + 1; // getMonth方法从 Date 对象返回月份 (0 ~ 11),返回结果需要手动加一
        var d = time.getDate(); // getDate方法从 Date 对象返回一个月中的某一天 (1 ~ 31)
        var h = time.getHours(); // getHours方法返回 Date 对象的小时 (0 ~ 23)
        var m = time.getMinutes(); // getMinutes方法返回 Date 对象的分钟 (0 ~ 59)
        var s = time.getSeconds(); // getSeconds方法返回 Date 对象的秒数 (0 ~ 59)
        return y + '-' + M + '-' + d + ' ' + h + ':' + m + ':' + s;
      } else {
          return '';
      }
}
transformTime(); // "2018-8-8 12:9:12"

古いメソッドの改良版

上記の変換メソッドは、タイムスタンプを Date インスタンスに変換し、対応する Date メソッドを使用して、対応する年、月、日、時、分、秒を取得します。は「2018-8-8 12: 9:12」ですが、少しぎこちないように見えます。一般的に使用される時刻形式に変換するには、10 未満の値の前に文字列「0」を追加して、時刻形式「2018-08-08 12:09:」に変換することにも注意する必要があります。 12分。

function transformTime(timestamp = +new Date()) {
    if (timestamp) {
        var time = new Date(timestamp);
        var y = time.getFullYear();
        var M = time.getMonth() + 1;
        var d = time.getDate();
        var h = time.getHours();
        var m = time.getMinutes();
        var s = time.getSeconds();
        return y + '-' + addZero(M) + '-' + addZero(d) + ' ' + addZero(h) + ':' + addZero(m) + ':' + addZero(s);
      } else {
          return '';
      }
}
function addZero(m) {
    return m < 10 ? '0' + m : m;
}
transformTime(); // "2018-08-08 12:09:12"

返された 10 未満の時刻値を処理し、形式が対称になるように「addZero」メソッドを使用して文字列に「0」を追加します。

新しいアイデア

タイムスタンプを必要な時刻形式に変換するために、合計で十数行になる 2 つの関数を作成しました。少し前に、部門の上司が、1 行のコードでタイムスタンプを「YYYY-MM-DD HH:mm:ss」の形式に変換する別の方法を教えてくれました。さらに蛇足ですが、コード

function time(time = +new Date()) {
    var date = new Date(time + 8 * 3600 * 1000); // 增加8小时
    return date.toJSON().substr(0, 19).replace('T', ' ');
}
time(); // "2018-08-09 18:25:54"

Date の 'toJSON' メソッドはグリニッジ標準時の JSON 形式の文字列を返します。これは実際には 'toISOString' メソッドを使用した結果です。文字列は「2018-08-09T10:20:54.396Z」の形式になっており、北京時間に変換するには、文字列の最初の 19 桁を取得して、「T」をスペースに置き換える必要があります。つまり、時間形式が必要です。

function time(time = +new Date()) {
    var date = new Date(time + 8 * 3600 * 1000);
    return date.toJSON().substr(0, 19).replace('T', ' ').replace(/-/g, '.');
}
time(); // "2018.08.09 18:25:54"

時間形式の「-」を「.」または他の記号に変更できます。古い方法と比較して、この方法ではコードの量がかなり節約され、読みやすくなりました。時刻形式にミリ秒が必要な場合は、文字列の最初の 23 桁を取得し、上記の replace メソッドで置き換えるだけで済みます。

関連する推奨事項:

js を使用して Excel をエクスポートおよびインポートするにはどうすればよいですか? jsを使用してExcelをインポートおよびエクスポートする方法(純粋なコード)

jsでドロップダウンメニューの左右の移動を実装する方法(コード)

setIntervalタイマーメソッドを使用してjsでカルーセルチャートを実装する方法(完全)コード)

以上がタイムスタンプを時刻形式に変換するjsのコードの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。