gpt4 book ai didi

php - 日期时间选择器表单验证

转载 作者:行者123 更新时间:2023-11-28 09:21:38 25 4
gpt4 key购买 nike

我一直在尝试为我的表单创建验证。我一直在研究如何禁用日期时间选择器中的周末以及假期。我正在使用来自 Trentrichardson http://trentrichardson.com/examples/timepicker/ 的 Jquery 脚本

我是 JS 新手,我正要抓狂,因为我找不到让这段代码工作的方法:

$(document).ready(function(){
$('.timepicker').datetimepicker({ beforeShowDay: $.datepicker.noWeekends });

var natDays = [
[2, 26, 'ph'], [2, 6, 'ph'], [2, 17, 'ph']
];

function noWeekendsOrHolidays(date) {
var noWeekend = $.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}

function nationalDays(date) {
for (i = 0; i < natDays.length; i++) {
if (date.getMonth() == natDays[i][0] - 1
&& date.getDate() == natDays[i][1]) {
return [false, natDays[i][2] + '_day'];
}
}
return [true, ''];
}


});

我昨天找到了这段代码,这是正确的答案( Can the jQuery UI Datepicker be made to disable Saturdays and Sundays (and holidays)? ),但我无法让它工作。它不显示假期,但周末已被禁用(工作)。

有什么想法吗?

最佳答案

检查日期是星期六还是星期日不需要单独的函数:

if (date.getDay() % 6) {
// date is not a weekend
} else {
// date is a weekend
}

检查公共(public)假期(考虑到日期每年和地点都会变化,这可能会困难得多)也很容易。以设定的格式创建日期列表(ISO8601 很方便),然后您可以根据当前日期进行测试:

// You may have a function like this already
// d is a javascript Date object
function dateToISO(d) {
function z(n){return (n<10? '0':'')+n}
return d.getFullYear() + '-' +
z(d.getMonth() + 1) + '-' +
z(d.getDate());
}

// s is a date string in ISO8601 format
function isPublicHoliday(s) {
var holidays = '2012-12-25 2012-12-26'; // list holidays
var m = holidays.match(s);
return !!(m && m.length);
}

isPublicHoliday(dateToISO(date)); // true for 2012-12-25

当然,您可能希望以不同的方式实现上述内容,但它给了您要点。据推测,日期选择器返回一个日期对象,或者一个您可以测试的格式化字符串。对字符串进行测试非常快,并且省去了数组和函数的很多麻烦。维护也非常容易,因为日期非常容易阅读。

关于php - 日期时间选择器表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14927882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com