Javascript 日期数组 - 迭代不正确(jquery ui datepicker)

标签 javascript jquery date arrays datepicker

我有一些构建日期范围数组的代码。然后我调用一个函数(来自 jquery UI 日期选择器),向它传递一个日期,并将该日期与数组中的日期进行比较。我这样做是因为日期存储在 cms 中,这是我可以输出它们的唯一方式。

不幸的是,我的代码只检查数组中的第一个日期范围 - 我不知道为什么!我认为这可能很简单(/愚蠢!)——如果有人能阐明它,我将非常感激!

代码如下 - 6 月至 9 月范围 (ps1-pe1) 工作正常,12 月至 1 月完全被忽略...

<script type="text/javascript" language="javascript"> 

var ps1 = new Date(2010, 06-1, 18); // range1 start
var pe1 = new Date(2010, 09-1, 03); // range1 end
var ps2 = new Date(2010, 12-1, 20); // range2 start
var pe2 = new Date(2011, 01-1, 02); // range2 end

var peakStart = new Array(ps1,ps2);
var peakEnd = new Array(pe1,pe2);
function checkDay(date) {
    var day = date.getDay();
    for (var i=0; i<peakStart.length; i++) {
        if ((date > peakStart[i]) && (date < peakEnd[i])) {
            return [(day == 5), ''];
        } else {
            return [(day == 1 || day == 5), ''];
        }
    }
}
</script>

最佳答案

Yaggo 说得很对,但显然太简洁了。

您想将第二个 return 语句移到循环之外。

function checkDay(date) {
    var day = date.getDay();
    for (var i=0; i<peakStart.length; i++) {
        if ((date > peakStart[i]) && (date < peakEnd[i])) {
            return [(day == 5), ''];
        }
    }
    // it's not during a peak period
    return [(day == 1 || day == 5), ''];
}

关于Javascript 日期数组 - 迭代不正确(jquery ui datepicker),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2503318/

相关文章:

javascript - jquery:切换 child onclick

javascript - Google Analytics API 返回没有正文的 204 响应

javascript - if 条件中的递归混淆,JS 是如何解释 "truthly/falsely"条件的?

javascript - 获取文本框的值作为表列的子项

ios - 具有不同格式的 Swift Date 对象

python - 从 pandas 时间戳中删除日期部分的最快方法

Javascript 继承——在构造函数中声明的对象在实例之间共享?

javascript - 如何在满是行的表格上使表格行淡出

javascript - 使用 jquery 更改事件选项卡

java - 在Java中将数值转换为日期