タイムスタンプと Date の計算
日付間の差分やオフセットを計算します。
「タイムスタンプと Date の計算」はCoddyKit上の無料JavaScript Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJavaScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 JavaScript Academyコースには全4レッスンが含まれています。
タイムスタンプ
日付は内部的にタイムスタンプとして保存されます。これは UTC の1970年1月1日午前0時、つまり Unix エポックからの経過ミリ秒数です。
const d = new Date("1970-01-01T00:00:00Z")
console.log(d.getTime())Date.now
Date.now は Date オブジェクトを作成せずに、現在のタイムスタンプをミリ秒単位で返します。時間の計測に効率的です。
const t = Date.now()
console.log(typeof t)
console.log(t > 0)getTime
getTime メソッドは、日付をミリ秒単位のタイムスタンプとして返します。比較や計算に便利です。
const d = new Date(2024, 0, 1)
console.log(typeof d.getTime())日付を比較する
2つの日付は、タイムスタンプを比較して比べます。より早い日付ほど小さい数値になります。
const a = new Date(2024, 0, 1)
const b = new Date(2024, 5, 1)
console.log(a.getTime() < b.getTime())ミリ秒単位の差
一方の日付からもう一方の日付を引くと、両方がタイムスタンプに暗黙変換され、差がミリ秒単位で得られます。
const a = new Date(2024, 0, 1)
const b = new Date(2024, 0, 2)
console.log(b - a)日数に変換する
ミリ秒単位の差を1日のミリ秒数で割ると、日数の差が得られます。
const a = new Date(2024, 0, 1)
const b = new Date(2024, 0, 11)
const ms = b - a
const days = ms / (1000 * 60 * 60 * 24)
console.log(days)時間を加算する
時間を加算するには、タイムスタンプに変換してミリ秒数を加え、その結果から新しい日付を作成します。
const start = new Date(2024, 0, 1)
const oneDay = 1000 * 60 * 60 * 24
const next = new Date(start.getTime() + oneDay)
console.log(next.getDate())カレンダー計算に使うsetDate
setDate メソッドは月の日を調整し、必要に応じて正しく翌月へ繰り越します。
const d = new Date(2024, 0, 31)
d.setDate(d.getDate() + 1)
console.log(d.getMonth())
console.log(d.getDate())経過時間を計測する
処理の前後で Date.now を取得し、その差を計算すると、処理にかかった時間をミリ秒単位で計測できます。
const start = Date.now()
let sum = 0
for (let i = 0; i < 1000; i++) { sum += i }
const elapsed = Date.now() - start
console.log(elapsed >= 0)タイムスタンプをDateに変換する
数値のタイムスタンプを Date コンストラクターに渡すと、元の時点を復元できます。
const ts = 1704067200000
const d = new Date(ts)
console.log(d.getUTCFullYear())秒とミリ秒
JavaScript のタイムスタンプはミリ秒単位ですが、多くの API は秒単位を使います。相互に変換するには 1000 を掛けるか、1000 で割ります。
const seconds = 1704067200
const d = new Date(seconds * 1000)
console.log(d.getUTCFullYear())クイックチェック
タイムスタンプに関する知識を確認しましょう。
まとめ
まとめ: 日付は内部的にはミリ秒単位のタイムスタンプです。
- Date.now は現在のタイムスタンプを返します
- 日付を引くとミリ秒単位の差が得られます
- 1日のミリ秒数で割ると日数が得られます
- JavaScript は秒ではなくミリ秒を使います
const a = new Date(2024, 0, 1)
const b = new Date(2024, 0, 2)
console.log(b - a)よくある質問
「タイムスタンプと Date の計算」レッスンは無料ですか?
はい。「タイムスタンプと Date の計算」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、JavaScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 JavaScript Academyコースには全4レッスンが含まれています。
「タイムスタンプと Date の計算」で何を学びますか?
日付間の差分やオフセットを計算します。 ブラウザで直接実行するハンズオンコードでJavaScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
JavaScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJavaScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「タイムスタンプと Date の計算」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJavaScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのJavaScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Date の作成と読み取り
- タイムスタンプと Date の計算
- 日付をフォーマットする
- タイムゾーンと UTC