【发布时间】:2014-04-11 01:30:06
【问题描述】:
我正在为客户开发一个网站,在我使用 Jquery UI Calendar 的网站上,我需要能够突出显示当前日期后 2 天开始的 3 个工作日,但要结合数学来计算周末。这是我的小提琴:
这里是 HTML
<input type="text" id='datepicker'>
这里是 JS
var SelectedDates = {};
SelectedDates[new Date('04/14/2014')] = new Date('04/14/2014');
SelectedDates[new Date('04/15/2014')] = new Date('04/15/2014');
SelectedDates[new Date('04/16/2014')] = new Date('04/16/2014');
$('#datepicker').datepicker({
minDate: 2,
maxDate: "+4M +15D",
beforeShowDay: function (date) {
var Highlight = SelectedDates[date];
if (Highlight) {
return [true, "Highlighted", Highlight];
} else {
return [true, '', ''];
}
}
});
我无法将beforeShowDay: $.datepicker.noWeekends 添加到上面的代码中。我还需要突出显示的 3 个日期是可变的,因此它们会根据当前日期而变化,但我仍在学习 JS,我不明白其背后的逻辑。
我浏览了这个网站和其他网站,虽然有很多关于如何突出显示特定日期的问题/答案,但没有一个完全适用于我正在尝试做的事情。
所以为了澄清一下,我需要做数学来弄清楚如何否定 minDate 和周末并突出显示接下来的三个工作日。
【问题讨论】:
-
为什么 minDate 设置为 2?这会阻止某人选择明天。
-
因为他们选择的日期是发货日期,而minDate: 2基本上就是处理时间
-
那么您想像小提琴一样突出显示星期五、星期一和星期二(今天是星期四)还是星期一、星期二和星期三?您的问题是“当前日期后 3 个工作日”,但这与小提琴示例不符。
-
你能看看jsfiddle.net/j08691/mw5fZ/5,告诉我这是否接近你想要的?
-
这个jsfiddle.net/j08691/mw5fZ/6怎么样?您可以通过更改
today = new Date();行来测试它与其他日期。例如,4 月 20 日将是today = new Date(2014,3,20);(月份从零开始)。让我知道这是否是您需要的,如果需要,我会将其发布为答案。
标签: javascript jquery html jquery-ui