Written by Kasumi

jQueryのdatetimepickerで選択した日付によって時間を変更する方法

jQueryのライブラリ【datetimepicker】で選択した日付によって時間を変更する方法を知りたい。

本記事ではこのような悩みを解決。

実装方法について解説します。

実装サンプル

See the Pen
datetimepickerで日付毎に時刻を変更する
by Kohei (@kouk05)
on CodePen.0

実装サンプルです。

入力フィールドをクリックするとdatetimepickerが立ち上がります。

選択できる時間の初期値が10:00〜20:00の間です。

日付が3日の時だけ選べる時間帯が12:00、13:00、15:00のみになるよう設定しています。

実装手順は以下の通りです。

jQueryコード

$(function () {
  $('#datetimepicker').datetimepicker({
    onChangeDateTime: function (dp, $input) {
      seldate = new Date($input.val());
      day = seldate.getDate();
      // 選択した日付を取得
      console.log(day);
      // 3日を選択したら
      if (day == 3) {
        $('#datetimepicker').datetimepicker({
          allowTimes: ['12:00', '13:00', '15:00']
        })
        // 3日以外の日付
      } else {
        $('#datetimepicker').datetimepicker({
          allowTimes: ['10:00', '11:00', '12:00', '13:00', '15:00', '17:00', '18:00', '19:00', '20:00']
        })
      }
    }
  });
  // 初期値
  $('#datetimepicker').datetimepicker({
    allowTimes: ['10:00', '11:00', '12:00', '13:00', '15:00', '17:00', '18:00']
  })
});

任意の日付だけ時間帯を変更するコード例です。

onChangeDateTime関数をdatetimepickerの実行関数内で使います。

この関数で【日付を選択したら】という処理を実行できます。

new Date($input.val());で選択した日付情報を取得。

getDate()関数を使って、日付のみ取り出します。

上記取り出した日付が、任意の日付(コード例だと3日)に該当したら、allowTimesパラメータで時間帯を変更します。

以上で実装完了です。

まとめ

datetimepickerの導入方法については以下記事をご参考ください。

以上で解説を終わります。

https://kasumiblog.org/jquery-datetimepicker/

目次

関連記事

jQuery WordPress

【簡単に代替】Contact Form 7 Datepickerが使えなくなった?jQuery UIを使って日付選択を実装しよう

更新日:2022.09.09
7669
jQuery

【jQuery】背景に波紋アニメーションを実装する方法

2023.08.28
1008
HTMLCSS jQuery

【簡単CSS・jQuery】上スクロール時のみヘッダー・ナビを固定表示する方法

更新日:2022.09.09
1825
jQuery

jQueryで画像読み込み完了後にイベントを実行する方法

更新日:2022.09.09
6830