javascript - 将javascript从单个日期排除转换为多个日期
问题描述
凭借我们有限的知识,我们能够根据工作日和时间在日期传递模块中排除某些日期。请参阅下面的代码。
但是现在,如果您选择运营商 99,我们希望排除明年的所有星期三和星期六。因此,如果选择了这个特定的运营商,那么从今天开始,一年内的每个星期三和星期六都会有多个 disabledDays.push(excldatum)。
有人可以帮助我们如何编写该代码吗?
var selected_carrier = parseInt($('.delivery_option_radio:checked').val());
var weekdag = new Date().getDay();
var uur = new Date().getHours();
var vandaag = new Date();
var morgen = new Date();
morgen.setDate(vandaag.getDate() + 1);
var exclmaand = morgen.getMonth() + 1;
var excldag = morgen.getDate();
var excldatum = exclmaand + "-" + excldag;
// carrier is postnl
if (selected_carrier == 99) {
// weekdag 0 is zondag t/m 6 is zaterdag
if (weekdag > -1 && weekdag < 5) {
// na 23 uur
if (uur >= 23) {
disabledDays.push(excldatum);
}
}
}
if (selected_carrier == 99) {
// weekdag 5 is vrijdag
if (weekdag == 5) {
// na 10 uur
if (uur >= 10) {
disabledDays.push(excldatum);
}
}
}
解决方案
类似以下代码的内容可能对您有用。它获取从今天开始的接下来 365 天内指定的 weekdaysToProcess 的所有日期。例如。[3,6] 周三和周六。
当然,您可以添加您喜欢的任何其他过滤器。
function GetDatesForWeekdaysForNext365Days(weekdaysToProcess) {
var currentDate = new Date();
var foundDates = [];
for (var day = 0; day < 365; day++) {
var calculatedDate = new Date();
calculatedDate.setDate(currentDate.getDate() + day);
var calculatedWeekDay = calculatedDate.getDay();
if (weekdaysToProcess.includes(calculatedWeekDay)) {
foundDates.push(calculatedDate);
}
}
return foundDates;
}
可以为运营商 99 调用该函数,例如:
disabledDays = GetDatesForWeekdaysForNext365Days([3,6]);
推荐阅读
- android - 找不到为什么到 TextView 的输出是 NaN
- facebook - 按关键字获取 Facebook 媒体博客的文章
- java - TextView 不会将我从登录重定向到我的注册活动
- blogger - 如何在移动设备上隐藏 Blogger 的侧边栏
- javascript - 检查字符串中的字符是否唯一
- jquery - 如何在 jquery 中创建滑块
- ajax - 如何在 PHP 和 Ajax 中使用两个下拉列表获取自动响应值?
- opencv - 哪种使用 OpenCV 的对象检测方法最适合不断变化的环境?
- angular - Angular API 调用的 HTTP-GET 请求不起作用
- php - 如何从数据库中自动选择保存值以选择 HTML 标记