【徹底解説】JavaScriptでDateをUNIXタイムスタンプに変換
JavaScript で通常の Date オブジェクトを UNIX タイムスタンプに変換するには、主に 2 つの方法があります。
- Date オブジェクトの getTime() メソッドを使用する
- JavaScript ライブラリを使用する
これは、最もシンプルで基本的な方法です。以下のコード例をご覧ください。
// Date オブジェクトを作成
const date = new Date('2024-06-29T20:02:00');
// getTime() メソッドで UNIX タイムスタンプを取得
const unixTimestamp = date.getTime();
// 結果を出力
console.log(unixTimestamp); // 1688435720000
Moment.js などの JavaScript ライブラリを使用すると、より簡単に UNIX タイムスタンプに変換できます。
Moment.js をインストールする必要があります。以下のコマンドを実行してインストールできます。
npm install moment
インストール後、以下のコード例のように使用できます。
// Moment.js を読み込む
const moment = require('moment');
// Date オブジェクトを作成
const date = new Date('2024-06-29T20:02:00');
// Moment.js オブジェクトに変換
const momentObj = moment(date);
// UNIX タイムスタンプを取得
const unixTimestamp = momentObj.unix();
// 結果を出力
console.log(unixTimestamp); // 1688435720000
上記以外にも、以下の方法で UNIX タイムスタンプに変換できます。
- Math.floor() 関数を使用する
- Bitwise 演算子を使用する
これらの方法は、より高度なテクニックであり、パフォーマンスが重要である場合に役立ちます。
それぞれ的方法には長所と短所があるので、状況に応じて適切な方法を選択してください。
Moment.js を使用したサンプルコード
// Moment.js を読み込む
const moment = require('moment');
// 現在の日付を取得
const now = new Date();
// Moment.js オブジェクトに変換
const momentObj = moment(now);
// UNIX タイムスタンプを取得
const unixTimestamp = momentObj.unix();
// 結果を出力
console.log(unixTimestamp);
getTime() メソッドを使用したサンプルコード
このコード例では、Dateオブジェクトの getTime()
メソッドを使用して、UNIXタイムスタンプを取得する方法を示します。
// 現在の日付を取得
const now = new Date();
// getTime() メソッドで UNIX タイムスタンプを取得
const unixTimestamp = now.getTime();
// 結果を出力
console.log(unixTimestamp);
Math.floor() 関数を使用したサンプルコード
// 現在の日付を取得
const now = new Date();
// ミリ秒に変換
const milliseconds = now.getTime();
// 秒に変換
const seconds = milliseconds / 1000;
// UNIX タイムスタンプを取得
const unixTimestamp = Math.floor(seconds);
// 結果を出力
console.log(unixTimestamp);
Bitwise 演算子を使用したサンプルコード
// 現在の日付を取得
const now = new Date();
// 秒に変換
const seconds = Math.floor(now.getTime() / 1000);
// UNIX タイムスタンプを取得
const unixTimestamp = seconds & 0x00000000FFFFFFFF;
// 結果を出力
console.log(unixTimestamp);
これらのサンプルコードは、いずれも現在の日付をUNIXタイムスタンプに変換するものです。他の日付を変換するには、new Date()
関数に引数として日付を指定する必要があります。
JavaScript で Date を UNIX タイムスタンプに変換するその他の方法
JavaScript の組み込み Date メソッドを使用する
JavaScript には、Date オブジェクトを操作するためのいくつかの組み込みメソッドが用意されています。これらのメソッドを使用して、UNIX タイムスタンプを簡単に取得できます。
const date = new Date('2024-06-29T20:02:00');
const unixTimestamp = date.valueOf();
console.log(unixTimestamp); // 1688435720000
この方法は、getTime()
メソッドとほぼ同じですが、valueOf()
メソッドの方がわずかに短く記述できます。
Unix ツールを使用する
date
コマンドなどの Unix ツールを使用して、コマンドラインから UNIX タイムスタンプを取得することもできます。これは、スクリプトやバッチファイルで Date を処理する場合に役立ちます。
date +%s
このコマンドは、現在の時刻の UNIX タイムスタンプを出力します。引数に特定の日付を指定することもできます。
オンラインの UNIX タイムスタンプコンバータを使用する
オンラインには、Date を UNIX タイムスタンプに変換できる無料のツールが多数あります。これは、コードを書きたくない場合や、シンプルなソリューションが必要な場合に役立ちます。
https://www.unixtimestamp.com/
これらの方法は、いずれも状況に応じて役立ちます。最良の方法を選択するには、要件と好みを考慮する必要があります。
その他の考慮事項
- 日付と時刻の精度: 使用するメソッドによっては、日付と時刻の精度が異なる場合があります。例えば、
getTime()
メソッドはミリ秒単位の精度ですが、valueOf()
メソッドはマイクロ秒単位の精度です。 - 時差: UNIX タイムスタンプは、UTC(協定世界時)に基づいています。そのため、ローカルタイムゾーンの日付を変換する場合は、時差を考慮する必要があります。
- エラー処理: すべての方法でエラー処理が適切に行われていることを確認してください。例えば、無効な日付が入力された場合、適切なエラーメッセージが表示されるようにする必要があります。
javascript jquery date