JavaScriptで日付を扱う方法:Dateオブジェクトとタイムスタンプの使い方
B

BlissByte

time unit
timestamp
date tool
2025-09-17
JavaScriptで日付を扱う方法:Dateオブジェクトとタイムスタンプの使い方

JavaScript Dateオブジェクトの実践的使い方

Dateオブジェクトの基本初期化

JavaScriptで日付を扱う基本的な方法はDateオブジェクトを使います。以下の5つの初期化パターンがあります:

// 1. 現在日時を取得
const now = new Date();

// 2. タイムスタンプから生成
const timestamp = 1625097600000;
const dateFromTimestamp = new Date(timestamp);

// 3. 日付文字列から生成(注意: ブラウザ依存あり)
const dateFromString = new Date('2023-07-15');

// 4. 年、月、日を指定(月は0-11)
const specificDate = new Date(2023, 6, 15);

// 5. 複数パラメータで詳細指定
const detailedDate = new Date(2023, 6, 15, 13, 30, 0);

日付フォーマットの変換

yyyy/mm/dd形式など、よく使われるフォーマットに変換する方法:

function formatDate(date) {
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const day = String(date.getDate()).padStart(2, '0');
  
  return `${year}/${month}/${day}`;
}

// 使用例: "2023/07/15"
console.log(formatDate(new Date()));

タイムゾーン処理

日本時間(JST)を扱う際の注意点:

// UTCからJSTへ変換(+9時間)
const utcDate = new Date('2023-07-15T00:00:00Z');
const jstDate = new Date(utcDate.getTime() + 9 * 60 * 60 * 1000);

// JSTからUTCへ変換
const jstToUtc = new Date(jstDate.getTime() - 9 * 60 * 60 * 1000);

日付計算の実例

日付の加算・減算や差分計算:

// 7日後を計算
const today = new Date();
const nextWeek = new Date(today.getTime() + 7 * 24 * 60 * 60 * 1000);

// 2つの日付の差分(日数)
function getDayDiff(date1, date2) {
  const diff = Math.abs(date1 - date2);
  return Math.floor(diff / (1000 * 60 * 60 * 24));
}

よく使うDateメソッド一覧

メソッド説明
getFullYear()年を取得2023
getMonth()月を取得(0-11)6 (7月)
getDate()日を取得15
getDay()曜日を取得(0-6)6 (土曜日)
getHours()時を取得13
getTime()タイムスタンプ取得1625097600000
toISOString()ISO形式で出力"2023-07-15T04:00:00.000Z"

うるう年判定

うるう年を判定する関数:

function isLeapYear(year) {
  return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
}

月末日取得

指定した月の最終日を取得:

function getLastDayOfMonth(year, month) {
  return new Date(year, month + 1, 0).getDate();
}