JavaScript 逆引き集 | 日付の現在取得

JavaScript JavaScript
スポンサーリンク

JavaScriptで現在日時を取得する(new Date)の基本と実践

「今の日時が欲しい」ときは new Date()。これで現在の日時を表す Dateオブジェクトが作れます。そこから年・月・日・時・分・秒などを取り出して表示や計算に使います。


基本の使い方

const now = new Date();
console.log(now); // 例: Fri Dec 05 2025 09:27:00 GMT+0900 (Japan Standard Time)
JavaScript
  • 返り値: 現在日時を指す Dateオブジェクト。
  • 時刻帯: デフォルトは実行環境のタイムゾーン(ブラウザなら端末設定)。

年月日・時分秒の取り出し

const now = new Date();

const year  = now.getFullYear();       // 例: 2025
const month = now.getMonth() + 1;      // 1〜12(getMonthは0〜11のため+1)
const date  = now.getDate();           // 1〜31
const hour  = now.getHours();          // 0〜23
const min   = now.getMinutes();        // 0〜59
const sec   = now.getSeconds();        // 0〜59
const ms    = now.getMilliseconds();   // 0〜999

console.log(`${year}/${month}/${date} ${hour}:${min}:${sec}`);
JavaScript
  • ポイント: 月は0始まり。表示する時は必ず「+1」。
  • 曜日: now.getDay() は 0(日)〜6(土)。表示したい文字列は自分で対応表を用意。

よく使う表示フォーマット

日本式の簡易表示(ゼロ埋めあり)

const now = new Date();
const pad = n => String(n).padStart(2, "0");

const y = now.getFullYear();
const m = pad(now.getMonth() + 1);
const d = pad(now.getDate());
const h = pad(now.getHours());
const mi = pad(now.getMinutes());
const s = pad(now.getSeconds());

console.log(`${y}${m}${d}${h}:${mi}:${s}`); // 2025年12月05日 09:27:00
JavaScript

ロケール任せで整形(toLocaleString)

const now = new Date();
console.log(now.toLocaleString("ja-JP", { timeZone: "Asia/Tokyo" }));
// 例: 2025/12/5 9:27:00
JavaScript
  • ポイント: ロケールとタイムゾーンを指定すれば、地域の慣習で表示される。

ISO形式(APIやログ向け)

const now = new Date();
console.log(now.toISOString()); // 例: 2025-12-05T00:27:00.000Z(UTC基準)
JavaScript
  • ポイント: UTCでの標準書式。タイムゾーンに左右されない。

現在時刻の数値(タイムスタンプ)

const ts = Date.now(); // 現在のミリ秒(1970-01-01 UTCからの経過)
console.log(ts); // 例: 1764894420000

// ミリ秒→Date
const d = new Date(ts);
JavaScript
  • 用途: 経過時間の計測、ソート、ユニークIDの一部など。

便利テンプレート集

曜日を日本語で表示

const days = ["日","月","火","水","木","金","土"];
const now = new Date();
const w = days[now.getDay()];
console.log(`${now.getFullYear()}${now.getMonth()+1}${now.getDate()}日(${w})`);
JavaScript

カウントダウンの残り時間表示

function formatCountdown(ms) {
  const pad = n => String(n).padStart(2, "0");
  const totalSec = Math.floor(ms / 1000);
  const h = pad(Math.floor(totalSec / 3600));
  const m = pad(Math.floor((totalSec % 3600) / 60));
  const s = pad(totalSec % 60);
  return `${h}:${m}:${s}`;
}

// 例: 締切までの差分
const deadline = new Date("2025-12-05T10:00:00+09:00");
const now = new Date();
console.log(formatCountdown(deadline - now)); // 例: 00:33:00
JavaScript

今日の日付を「YYYY-MM-DD」で

const todayStr = (() => {
  const now = new Date();
  const pad = n => String(n).padStart(2, "0");
  return `${now.getFullYear()}-${pad(now.getMonth()+1)}-${pad(now.getDate())}`;
})();
console.log(todayStr); // 例: 2025-12-05
JavaScript

よくある落とし穴と対策

  • 月が0始まり: 表示時は必ず +1。関数やテンプレで共通化すると安全。
  • タイムゾーンの違い: ISOはUTC、toLocaleStringは環境依存。確実に日本時間で表示したいなら timeZone: "Asia/Tokyo" を指定。
  • ゼロ埋めの不足: 1桁の月・日・時・分・秒は padStart(2,”0″) で揃える。
  • 手書き整形の複雑さ: 表示は toLocaleString に任せると早い。API連携は toISOString を使うと安定。

練習問題(手を動かして覚える)

  • 1. 現在を日本式でゼロ埋め表示
const now = new Date();
const pad = n => String(n).padStart(2,"0");
console.log(`${now.getFullYear()}${pad(now.getMonth()+1)}${pad(now.getDate())}${pad(now.getHours())}:${pad(now.getMinutes())}:${pad(now.getSeconds())}`);
JavaScript
  • 2. ロケールで日本時間表示
console.log(new Date().toLocaleString("ja-JP", { timeZone: "Asia/Tokyo" }));
JavaScript
  • 3. 7日後の日時をISOで出力
const now = new Date();
const sevenDaysLater = new Date(now.getTime() + 7*24*60*60*1000);
console.log(sevenDaysLater.toISOString());
JavaScript

直感的な指針

  • 今が欲しい: new Date()。
  • 表示は簡単に: toLocaleString(ロケール・タイムゾーン指定)。
  • API連携: toISOString(UTCで安定)。
  • 年月日等: get系メソッドで取り出し、月は+1、ゼロ埋めはpadStart。
タイトルとURLをコピーしました