var holidays = jQuery.parseJSON('{"closed":[0,6],"days":{"2014-01-01":"1","2014-01-13":"1","2014-02-11":"1","2014-03-21":"1","2014-04-29":"1","2014-05-03":"1","2014-05-04":"1","2014-05-05":"1","2014-05-06":"1","2014-07-21":"1","2014-09-15":"1","2014-09-23":"1","2014-10-13":"1","2014-11-03":"1","2014-11-23":"1","2014-11-24":"1","2014-12-23":"1","2015-01-01":"1","2015-01-02":"1","2015-01-03":"1","2015-01-12":"1","2015-02-11":"1","2015-03-21":"1","2015-04-29":"1","2015-05-03":"1","2015-05-04":"1","2015-05-05":"1","2015-05-06":"1","2015-07-20":"1","2015-09-21":"1","2015-09-22":"1","2015-09-23":"1","2015-10-12":"1","2015-11-03":"1","2015-11-23":"1","2015-12-23":"1","2015-12-31":"1","2016-01-01":"1","2016-01-02":"1","2016-01-11":"1","2016-02-11":"1","2016-03-20":"1","2016-03-21":"1","2016-04-29":"1","2016-05-03":"1","2016-05-04":"1","2016-05-05":"1","2016-07-18":"1","2016-08-11":"1","2016-09-19":"1","2016-09-22":"1","2016-10-10":"1","2016-11-03":"1","2016-11-23":"1","2016-12-23":"1","2016-12-31":"1","2017-01-01":"1","2017-01-02":"1","2017-01-09":"1","2017-02-11":"1","2017-03-20":"1","2017-04-29":"1","2017-05-03":"1","2017-05-04":"1","2017-05-05":"1","2017-07-17":"1","2017-08-11":"1","2017-09-18":"1","2017-09-23":"1","2017-10-09":"1","2017-11-03":"1","2017-11-23":"1","2017-12-23":"1","2018-01-01":"1","2018-01-02":"1","2018-01-03":"1","2018-01-08":"1","2018-02-11":"1","2018-02-12":"1","2018-03-21":"1","2018-04-29":"1","2018-04-30":"1","2018-05-01":"1","2018-05-02":"1","2018-05-03":"1","2018-05-04":"1","2018-05-05":"1","2018-07-16":"1","2018-08-11":"1","2018-09-17":"1","2018-09-23":"1","2018-09-24":"1","2018-10-08":"1","2018-11-03":"1","2018-11-23":"1","2018-12-23":"1","2018-12-24":"1","2018-12-31":"1","2019-01-01":"1","2019-01-02":"1","2019-01-03":"1","2019-01-04":"1","2019-01-14":"1","2019-02-11":"1","2019-03-21":"1","2019-04-29":"1","2019-04-30":"1","2019-05-01":"1","2019-05-02":"1","2019-05-03":"1","2019-05-04":"1","2019-05-05":"1","2019-05-06":"1","2019-07-15":"1","2019-08-11":"1","2019-08-12":"1","2019-09-16":"1","2019-09-23":"1","2019-10-14":"1","2019-10-22":"1","2019-11-03":"1","2019-11-04":"1","2019-11-23":"1","2019-12-31":"1","2020-01-01":"1","2020-01-02":"1","2020-01-03":"1","2020-01-13":"1","2020-02-11":"1","2020-02-23":"1","2020-02-24":"1","2020-03-20":"1","2020-04-29":"1","2020-05-03":"1","2020-05-04":"1","2020-05-05":"1","2020-05-06":"1","2020-07-23":"1","2020-07-24":"1","2020-08-10":"1","2020-09-21":"1","2020-09-22":"1","2020-11-03":"1","2020-11-23":"1","2020-12-31":"1","2021-01-01":"1","2021-01-11":"1","2021-02-11":"1","2021-02-23":"1","2021-03-20":"1","2021-04-29":"1","2021-05-03":"1","2021-05-04":"1","2021-05-05":"1","2021-07-22":"1","2021-07-23":"1","2021-08-08":"1","2021-08-09":"1","2021-09-20":"1","2021-09-23":"1","2021-11-03":"1","2021-11-23":"1","2021-12-31":"1","2022-01-01":"1","2022-01-03":"1","2022-01-10":"1","2022-02-11":"1","2022-02-23":"1","2022-03-21":"1","2022-04-29":"1","2022-05-03":"1","2022-05-04":"1","2022-05-05":"1","2022-07-18":"1","2022-08-11":"1","2022-09-19":"1","2022-09-23":"1","2022-10-10":"1","2022-11-03":"1","2022-11-23":"1","2023-01-01":"1","2023-01-02":"1","2023-01-03":"1","2023-01-09":"1","2023-02-11":"1","2023-02-23":"1","2023-03-21":"1","2023-04-29":"1","2023-05-03":"1","2023-05-04":"1","2023-05-05":"1","2023-07-17":"1","2023-08-11":"1","2023-09-18":"1","2023-09-23":"1","2023-10-09":"1","2023-11-03":"1","2023-11-23":"1","2024-01-01":"1","2024-01-08":"1","2024-02-11":"1","2024-02-12":"1","2024-02-23":"1","2024-03-20":"1","2024-04-29":"1","2024-05-03":"1","2024-05-04":"1","2024-05-05":"1","2024-05-06":"1","2024-07-15":"1","2024-08-11":"1","2024-08-12":"1","2024-09-16":"1","2024-09-22":"1","2024-09-23":"1","2024-10-14":"1","2024-11-03":"1","2024-11-04":"1","2024-11-23":"1","2025-01-01":"1","2025-01-13":"1","2025-02-11":"1","2025-02-23":"1","2025-02-24":"1","2025-03-20":"1","2025-04-29":"1","2025-05-03":"1","2025-05-04":"1","2025-05-05":"1","2025-05-06":"1","2025-07-21":"1","2025-08-11":"1","2025-09-15":"1","2025-09-23":"1","2025-10-13":"1","2025-11-03":"1","2025-11-23":"1","2025-11-24":"1"}}'); $(function() { /* DatePicker入力補完 */ $(document).on('blur', '.input-group.date>input[type="text"]', function(event){ if ($(this).val() != '') { $(this).val(formatDateStr($(this).val())); } }); }); /* Datepicker初期化 */ function initDatePicker(objs, option) { var pickerOpt = {dateFormat: "yy-mm-dd", constrainInput: false, showOn: "button", beforeShowDay: function(day) {return setHolidays(day, holidays);}}; for(var key in option){ pickerOpt[key] = option[key]; } jQuery.each(objs, function(index, obj) { var targetObj = $(obj).find('input[type="text"]'); if (targetObj) { targetObj.datepicker(pickerOpt); $(obj).find('button.ui-datepicker-trigger').text(''); $(obj).find('button.ui-datepicker-trigger').wrap(''); $(obj).find('button.ui-datepicker-trigger').html(''); $(obj).find('button.ui-datepicker-trigger').addClass('btn').addClass('btn-default'); } }); } /* 日付フォーマット化 */ function formatDateStr(str) { var tempStr = jQuery.trim(str); var retStr = str; // 半角化(文字コードをシフト) tempStr = formatHalfAlnum(tempStr); tempStr = tempStr.replace(new RegExp("\/", 'g'), "\-"); tempStr = tempStr.split('.').join('-'); var tempArr = tempStr.split('-'); var itemNum = tempArr.length; var tempYear, tempMonth, tempDay; if (itemNum >= 2 && itemNum <= 3 && !isNaN(tempArr[0]) && !isNaN(tempArr[1])) { if (itemNum == 2 || !isNaN(tempArr[2])) { var arrDate = []; try { if (itemNum == 3) { tempMonth = parseInt(tempArr[1], 10)-1; tempDay = parseInt(tempArr[2], 10); tempYear = parseInt(tempArr[0], 10); if (tempYear >= 0 && tempYear < 100) { tempYear = tempYear + 2000; // 年を4桁化 } } else { // 年がない場合は今年で補完 tempMonth = parseInt(tempArr[0], 10)-1; tempDay = parseInt(tempArr[1], 10); var tempDate = new Date(); tempYear = tempDate.getFullYear(); } var date = new Date(tempYear, tempMonth, tempDay); arrDate[0] = date.getFullYear(); arrDate[1] = date.getMonth() + 1; arrDate[2] = date.getDate(); if (!isNaN(arrDate[1]) && !isNaN(arrDate[2])) { arrDate[1] = ('0' + arrDate[1]).slice(-2); arrDate[2] = ('0' + arrDate[2]).slice(-2); if (itemNum == 2) { var nowDate = new Date(); arrDate[0] = nowDate.getFullYear(); } retStr = arrDate.join('-'); } } catch (e) { } } } return retStr; } /* カレンダーの休日設定 */ function setHolidays(day, holidays) { var holiday = holidays.days[jQuery.datepicker.formatDate("yy-mm-dd", day)]; var className = ""; if (holiday) { className = "date-closed"; } else { var wday = day.getDay(); jQuery.each(holidays.closed, function(index, elem) { if (elem == wday) { className = "date-closed"; return false; } }); result = [true, className]; } return [true, className]; } /* 日付のバリデーション(整形後) */ function isValidDate(strDate) { var tempArr = strDate.split('-'); if (tempArr.length != 3) return false; var arrDate = []; try { var tempDate = new Date(tempArr.join('/')); arrDate[0] = tempDate.getFullYear(); arrDate[1] = tempDate.getMonth() + 1; arrDate[2] = tempDate.getDate(); if (isNaN(arrDate[0]) || isNaN(arrDate[1]) || isNaN(arrDate[2])) return false; arrDate[1] = ('0' + arrDate[1]).slice(-2); arrDate[2] = ('0' + arrDate[2]).slice(-2); if (tempArr[0] != arrDate[0] || tempArr[1] != arrDate[1] || tempArr[2] != arrDate[2]) return false; } catch (e) { return false; } return true; }