$(function() { $.datepicker.setDefaults($.datepicker.regional["ja"]); //土日を選択した場合は時間帯選択の「18時以降(平日のみ)」を非表示にする function doSomething() { let selectedDate; // 選択された日付を格納する変数 if($(this).hasClass('day1')){ $('select[name="date-hope1-time"]').prop("selectedIndex", 0); var date1 = $('.day1').datepicker('getDate'); var day1 = date1.getDay(); if (day1 == 6 || day1 == 0) { $('span[data-name="date-hope1-time"] select option:last-child').prop('disabled', true); } else{ $('span[data-name="date-hope1-time"] select option:last-child').prop('disabled', false); } selectedDate = date1; // getDate() で取得した Date オブジェクトを格納 } if($(this).hasClass('day2')){ $('select[name="date-hope2-time"]').prop("selectedIndex", 0); var date2 = $('.day2').datepicker('getDate'); var day2 = date2.getDay(); if (day2 == 6 || day2 == 0) { $('span[data-name="date-hope2-time"] select option:last-child').prop('disabled', true); } else{ $('span[data-name="date-hope2-time"] select option:last-child').prop('disabled', false); } selectedDate = date2; // getDate() で取得した Date オブジェクトを格納 } if($(this).hasClass('day3')){ $('select[name="date-hope3-time"]').prop("selectedIndex", 0); var date3 = $('.day3').datepicker('getDate'); var day3 = date3.getDay(); if (day3 == 6 || day3 == 0) { $('span[data-name="date-hope3-time"] select option:last-child').prop('disabled', true); } else{ $('span[data-name="date-hope3-time"] select option:last-child').prop('disabled', false); } selectedDate = date3; // getDate() で取得した Date オブジェクトを格納 } // ここで selectedDate を使用して処理を行う // 例えば、フォーマットを 'YYYY-MM-DD' に変換して表示する場合 if (selectedDate) { var formattedDate = selectedDate.getFullYear() + '-' + ('0' + (selectedDate.getMonth() + 1)).slice(-2) + '-' + ('0' + selectedDate.getDate()).slice(-2); console.log("選択された日付 (YYYY-MM-DD): " + formattedDate); // 必要に応じて、この formattedDate を他の処理で使用する } } var numberOfMonths; if (window.matchMedia && window.matchMedia('(max-device-width: 640px)').matches) { // smartphone numberOfMonths = 1; } else { // pc numberOfMonths = 2; } $(".date_hope").datepicker( { numberOfMonths: numberOfMonths, autoSize: true,//テキストボックスの幅を自動設定 firstDay: 0, // 日曜始まり dateFormat: 'yy/mm/dd', minDate: '2025/05/15',//上記で判定した翌日・翌々日の日付を指定 // minDate: new Date(2021, 10 - 1, 18), maxDate: '+3m', onSelect: function(dateText, inst) { // 明示的に Date オブジェクトを解析 var parts = dateText.split('/'); var year = parseInt(parts[0], 10); var month = parseInt(parts[1], 10) - 1; var day = parseInt(parts[2], 10); var parsedDate = new Date(year, month, day); // 解析した Date オブジェクトを使って doSomething を呼び出す $(this).data('datepicker-date', parsedDate); // Dateオブジェクトをdata属性に格納 doSomething.call(this); }, beforeShowDay : function(date) {//以下、休業日設定をする日付を記載 var dateFormat = 'yy/mm/dd'; var disableDates = [ "2024/04/29","2024/05/03","2024/05/04","2024/05/05","2024/05/06","2024/07/15","2024/08/11","2024/08/12","2024/08/13","2024/08/14","2024/08/15","2024/09/16","2024/09/23","2024/10/14","2024/11/04","2024/11/23","2024/12/29","2024/12/30","2024/12/31","2025/01/01","2025/01/02","2025/01/03","2025/01/13","2025/02/11","2025/02/24","2025/03/20","2025/04/22","2025/04/29","2025/05/03","2025/05/04","2025/05/05","2025/05/06","2025/05/27","2025/06/24","2025/07/21","2025/07/22","2025/08/11","2025/09/15","2025/09/23","2025/09/30","2025/10/13","2025/10/28","2025/11/03","2025/11/24","2025/12/29","2025/12/30","2025/12/31","2026/01/01","2026/01/02","2026/01/03","2026/01/12","2026/02/11","2026/02/23","2026/03/20" ]; var dateFormat = 'yy/mm/dd'; var disableDate = $.datepicker.formatDate(dateFormat, date); if (date.getDay() == 3) { // 水曜日 return [false, 'ui-state-disabled']; } else { // 水曜日以外 return [( disableDates.indexOf(disableDate) == -1 ), "", "診療日"]; } } }); $('.date_hope').attr('readonly',true);//スマホでキーボードを表示しない });