jQueryを使わないデートピッカー「flatpickr」

Filed under: JavaScript — kdcs @ 26年3月2日 月曜日

jQueryを使わないウェブサイトを構築するための手法「デートピッカー編」

flatpickr

html

<link rel="stylesheet" href="flatpickr.min.css">
<script src="flatpickr.min.js"></script>

<input id="date" type="text">

設定例
・毎週の休日:土日を無効化
・個別の休日:配列で指定
・第1・第3・第5土曜日を休日:disableに関数を渡して判定

// 個別の休日(文字列 or Date)
const specificHolidays = [
  "2026-03-21",
  "2026-04-29",
  new Date(2026, 4, 3) // 2026-05-03
];

// 第1・第3・第5土曜日かどうか判定する関数
function isNthSaturday(date) {
  const day = date.getDay();      // 0:日〜6:土
  if (day !== 6) return false;    // 土曜以外は対象外

  const d = date.getDate();       // 日にち
  const nth = Math.floor((d - 1) / 7) + 1; // 第何週か(1〜5)
  return nth === 1 || nth === 3 || nth === 5;
}

flatpickr("#date", {
  dateFormat: "Y-m-d",
  disable: [
    // 個別の休日
    ...specificHolidays,

    // 関数で動的に無効化
    function(date) {
      const day = date.getDay();

      // 毎週の休日(例:日曜=0, 土曜=6)
      if (day === 0 || day === 6) return true;

      // 第1・第3・第5土曜日を休日にする
      if (isNthSaturday(date)) return true;

      // それ以外は有効
      return false;
    }
  ]
});

サイト内検索

カテゴリー

最近の投稿

« |jQueryを使わないデートピッカー「flatpickr」| »
↑上に戻る