質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

2回答

3000閲覧

datetimepickerで選択された曜日によって表示する時間を変更したいです。

tomtom199

総合スコア10

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery UI

jQuery UI はjQuery公式のインターフェースライブラリであり、対話型のウェブアプリケーションを作る際に役立ちます。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2021/10/13 09:03

編集2021/10/13 09:48

こんにちは。
現在レストランのサイトを制作しています。コンタクトフォームでユーザーが予約したい日付と時間帯を選択できるように"jquery UIのdatetimepicker"を使用しています。

***実現したいこと***

選択された曜日によって表示する時間を変更したいです。
コードにも書いてありますが、
例)月、水、木、金曜日を選択 => 予約可能な時間は、'17:30', "17:45", '20:15', "20:30", "20:45" を表示
土、日曜日を選択 => 予約可能な時間は、'11:30', '11:45', '12:00', '12:15', '17:30', "17:45", '20:15', "20:30", "20:45" を表示

/* main.js */ let changeTimeRange = function (currentDateTime) { if (currentDateTime.getDay() == 6 && currentDateTime.getDay() == 0) { // 土、日曜日が選択されたら予約可能な時間はallowTimesの範囲を表示 alert('weekends') // 表示されない this.setOptions({ allowTimes: [ '11:30', '11:45', '12:00', '12:15', '17:30', "17:45", '20:15', "20:30", "20:45" ], }); // 月、水、木、金曜日が選択されたら予約可能な時間はallowTimesの範囲を表示 } else if (currentDateTime.getDay() == 1 && currentDateTime.getDay() == 3 && currentDateTime.getDay() == 4 && currentDateTime.getDay() == 5) this.setOptions({ allowTimes: [ '17:30', "17:45", '20:15', "20:30", "20:45" ], }); }; jQuery.datetimepicker.setLocale('de'); $('.timepicker').datetimepicker({ minDate: 1, timepicker: true, datepicker: true, // allowTimes: [ // '11:30', '11:45', '12:00', '12:15', '17:30', "17:45", '20:15', "20:30", "20:45" // ], allowTimes: changeTimeRange, format: 'd, F. Y, H:i', onChangeDateTime: changeTimeRange, onShow: changeTimeRange });

参考サイト datetimepickerドキュメント 参考部分は(Set options runtime DateTimePicker #
If select day is Saturday, the minimum set 11:00, otherwise 8:00) 

指摘やアドバイス、参考になる記事をご存知の方がいればとても助かります。よろしくお願いします。

追記

急ぎの案件なのでstackoverflowにも同内容を投稿しました。stackoverflow

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomtom199

2021/10/13 11:02

コメントありがとうございます。追記しました。
guest

回答2

0

イメージ説明

投稿2021/10/13 10:24

編集2021/10/13 15:51
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomtom199

2021/10/13 11:23

この状況でこの条件分岐は確かに不可能ですね。。 || に書き換えた結果、無事に予約可能時間を切り替え表示することができました。 そのコードを貼りますね。アドバイスありがとうございました!!
guest

0

自己解決

letsirK.aivlySさん、アドバイスありがとうございました! :)

/* main.js */ let changeTimeRange = function (currentDateTime) { if (currentDateTime.getDay() == 6 || currentDateTime.getDay() == 0) { this.setOptions({ allowTimes: [ '11:30', '11:45', '12:00', '12:15', '17:30', "17:45", '20:15', "20:30", "20:45" ], }); } else if (currentDateTime.getDay() == 1 || currentDateTime.getDay() == 3 || currentDateTime.getDay() == 4 || currentDateTime.getDay() == 5) this.setOptions({ allowTimes: [ '17:30', "17:45", '20:15', "20:30", "20:45" ], }); }; jQuery.datetimepicker.setLocale('de'); $('.timepicker').datetimepicker({ minDate: 1, timepicker: true, datepicker: true, format: 'd, F. Y, H:i', onChangeDateTime: changeTimeRange, onShow: changeTimeRange, });

投稿2021/10/13 11:25

tomtom199

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問