JavaScript Tips | 日付・時間ユーティリティ:yyyy/mm/dd

JavaScript JavaScript
スポンサーリンク
スポンサーリンク

yyyy/mm/dd は「日本の業務システムで最も使われる日付フォーマット」

日本の業務システムでは yyyy/mm/dd(2026/08/06 のような形式)が圧倒的に使われます。 帳票、レポート、請求書、画面表示、ログ、Excel 出力など、ほぼすべてがこの形式を前提にしています。 そのため、JavaScript でこの形式を確実に生成できるユーティリティを持っておくことは、実務において非常に重要です。

ここでは、初心者でも理解しやすいように、 「yyyy/mm/dd を生成するユーティリティ」を例題・コード・テンプレートを交えて丁寧に解説します。 業務でそのまま使える形に落とし込んでいきます。

yyyy/mm/dd を作るための基礎:Date の仕様を正しく理解する

JavaScript の現在日時取得は次の一行です。

const now = new Date();
JavaScript

しかし、この Date オブジェクトには初心者がつまずきやすい仕様があります。

月は 0 始まりで返ってくる(最重要ポイント)

now.getMonth(); // 0〜11 を返す(1月が0)
JavaScript

つまり、表示用には必ず +1 が必要です。

日付要素はゼロ埋めされない

例えば、8 月は 8、3 日は 3 のように返ってきます。 そのまま結合すると "2026/8/3" のように不揃いな文字列になり、 ソートや比較が壊れます。

そのため、必ず 2 桁ゼロ埋め(padStart)が必要です。

String(3).padStart(2, "0"); // "03"
JavaScript

この 2 点を押さえるだけで、日付フォーマットの半分は理解できます。

yyyy/mm/dd を返すユーティリティ関数(最小構成)

まずは最もシンプルで実務でも使える形を紹介します。

function formatYmdSlash(date) {
  const pad2 = (n) => String(n).padStart(2, "0");

  const year  = date.getFullYear();
  const month = pad2(date.getMonth() + 1);
  const day   = pad2(date.getDate());

  return `${year}/${month}/${day}`;
}
JavaScript

使い方は次の通りです。

const today = new Date();
console.log(formatYmdSlash(today)); // 例: "2026/08/06"
JavaScript

この関数が業務で強い理由

  • 常に yyyy/mm/dd を返す
  • 月の +1 を内部で吸収してくれる
  • ゼロ埋めを忘れない
  • Date オブジェクトを渡すだけでよい

初心者がやりがちなミス(ゼロ埋め忘れ、月の +1 忘れ)をすべて吸収してくれるため、 プロジェクトのどこでも安心して使えます。

今日の日付を yyyy/mm/dd で返すユーティリティ(業務テンプレート)

業務では「今日の日付を yyyy/mm/dd で欲しい」という場面が非常に多いので、 専用の関数を用意しておくと便利です。

function todayYmdSlash() {
  return formatYmdSlash(new Date());
}
JavaScript

使い方は次の通りです。

console.log(todayYmdSlash()); // "2026/08/06"
JavaScript

この関数が便利な場面

  • 帳票の「作成日」
  • レポートの「生成日」
  • ログの「処理日」
  • API の「date パラメータ」
  • Excel 出力の「日付列」

日本の業務システムでは yyyy/mm/dd が標準語なので、 この関数は日付ユーティリティの“入り口”として必ず用意しておくべきです。

yyyy/mm/dd を使った実務テンプレート(そのまま使える)

レポートヘッダ生成テンプレート

function createReportHeader(title) {
  return `【${title}】作成日: ${todayYmdSlash()}`;
}

console.log(createReportHeader("売上集計"));
// 【売上集計】作成日: 2026/08/06
JavaScript

ログ出力テンプレート

function logWithDate(message) {
  console.log(`[${todayYmdSlash()}] ${message}`);
}

logWithDate("バッチ処理を開始しました");
// [2026/08/06] バッチ処理を開始しました
JavaScript

API パラメータ生成テンプレート

function buildApiParams() {
  return {
    date: todayYmdSlash(),
    limit: 100,
  };
}

console.log(buildApiParams());
// { date: "2026/08/06", limit: 100 }
JavaScript

これらはすべて実務でそのまま使える形です。

yyyy/mm/dd を扱うときの“落とし穴”を深掘りする

タイムゾーンの違いに注意する

new Date()実行環境のタイムゾーン を使います。

  • ブラウザ → ユーザー端末のタイムゾーン
  • Node.js → サーバーのタイムゾーン

グローバルサービスでは、 「DB は UTC」「画面はローカルタイム」という設計が一般的です。

UTC の yyyy/mm/dd を作りたい場合は次のようにします。

function formatYmdSlashUtc(date) {
  const pad2 = (n) => String(n).padStart(2, "0");

  const year  = date.getUTCFullYear();
  const month = pad2(date.getUTCMonth() + 1);
  const day   = pad2(date.getUTCDate());

  return `${year}/${month}/${day}`;
}
JavaScript

yyyy/mm/dd は「文字列として比較できる」

"2026/08/06" < "2026/08/07" "2026/08/06" > "2026/08/05"

このように、文字列のまま大小比較ができるのが yyyy/mm/dd の強みです。 ゼロ埋めされているからこそ成立する性質で、 業務ロジックで日付比較を簡単に書けるようになります。

日付ユーティリティモジュールのテンプレート(プロジェクト向け)

プロジェクトで使いやすいように、 日付ユーティリティをひとまとめにしたテンプレートを紹介します。

export const DateUtil = {
  pad2(n) {
    return String(n).padStart(2, "0");
  },

  formatYmdSlash(date) {
    const year  = date.getFullYear();
    const month = this.pad2(date.getMonth() + 1);
    const day   = this.pad2(date.getDate());
    return `${year}/${month}/${day}`;
  },

  todayYmdSlash() {
    return this.formatYmdSlash(new Date());
  },

  formatYmdSlashUtc(date) {
    const year  = date.getUTCFullYear();
    const month = this.pad2(date.getUTCMonth() + 1);
    const day   = this.pad2(date.getUTCDate());
    return `${year}/${month}/${day}`;
  },
};
JavaScript

使い方は次の通りです。

import { DateUtil } from "./DateUtil.js";

console.log(DateUtil.todayYmdSlash());
console.log(DateUtil.formatYmdSlash(new Date()));
console.log(DateUtil.formatYmdSlashUtc(new Date()));
JavaScript

このテンプレートをプロジェクトに置いておくだけで、 日付処理の品質が一気に安定します。

まとめ:yyyy/mm/dd は「日本の業務システムの共通言語」

yyyy/mm/dd は、日本の業務システムで最も使われる日付フォーマットです。 そのため、次のポイントをユーティリティ化しておくことが非常に重要です。

  • 月の 0 始まりを吸収する
  • ゼロ埋めを徹底する
  • ローカル版と UTC 版を用意する
  • 今日の日付を返す関数を作る
  • 実務テンプレート(ログ・レポート・API)と組み合わせる

こうしておくことで、 日付処理がどの場面でも安定し、 コードの読みやすさ・保守性・再利用性が大きく向上します。

日付は毎日変わりますが、 その扱い方はユーティリティで固定化できます。 その最初の一歩が「yyyy/mm/dd ユーティリティ」です。

タイトルとURLをコピーしました