Javascript 日期范围与月份重叠

标签 javascript jquery date

我正在尝试使用基于我正在运行的事件的当前日期的选项来填充 HTML 选择字段 (#contestdate)。我使用 JavaScript 进行主要计算,并使用 jQuery 添加到选择字段。

日期范围应将当前日期放在中间(下面以红色突出显示),并在当前日期的两侧选择 7 天(我需要选择之前和 future 的日子)。

我已经有了可以显示日期的代码,但是,日期变成了负值。这些天数也会超过月底的日期,尽管没有显示。下面的代码应将 10/30/2015 和 10/31/2015 显示为前两个选择(在“所有日期”之后):

How it looks at the moment

我需要的是它自动计算每个月有多少天,并相应地修改日期。我将在 2015 年底之后举办该事件,因此我还需要计算年份。

如果每个月都有大量变量和每个月相应的条件,我想不出一种方法来做到这一点。

我的代码如下:

// Add the available days to the dropdown for date selection (American format)
$(document).ready(function() {
    var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth() + 1; // January is 0
    var yyyy = today.getFullYear();

    // Days 9 and under
    if (dd < 10) {
        dd = '0' + dd;
    }

    // Months 9 and under
    if (mm < 10) {
        mm = '0' + mm;
    }

    // Previous dates (Needs calculation for change in month / year)
    dd = dd - 8;
    for (i = 1; i < 8; i++) {
        dd = dd + 1;
        theDate = mm + '/' + dd + '/' + yyyy;
        $('#contestdate').append($('<option />').val(i).html(theDate));
    }

    // Current date
    dd = dd + 1;
    theDate = mm + '/' + dd + '/' + yyyy;
    $('#contestdate').append($('<option />').val('8').html(theDate.fontcolor("red")));

    // Future dates (Needs calculation for change in month / year)
    for (i = 9; i < 16; i++) {
        dd = dd + 1;
        theDate = mm + '/' + dd + '/' + yyyy;
        $('#contestdate').append($('<option />').val(i).html(theDate));
    }
});

请注意,我需要美国日期格式 (mm/dd/yyyy) 的日期,这可能会改变解决方案。

如果有人能让我知道(或为我指出正确的方向)一种轻松完成此操作的方法,我将非常感激:)

最佳答案

我创建了一支笔:http://codepen.io/anon/pen/OyoWXK

操作Date对象来获取过去和 future 的日期。

至于选项value,我只使用了Date对象,您可以将其更改为适合您需要的任何内容。

希望这对您有帮助。

关于Javascript 日期范围与月份重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534538/

相关文章:

javascript - 将 UTC 日期时间从服务器转换为网页上的本地日期时间

javascript - 基于组件变量的 ngx-datatable 动态单元格样式

jQuery KeyUp 和单击

jquery - 如何使用 jquery 指示列表元素顺序的变化?

javascript - 更改另一个 slider 时更新 Material slider UI

javascript - Angular 本地化基础 URL

javascript - 如何在加载后运行 AJAX 加载的页面脚本

java - 在 Jtable/ResultSet 中格式化日期

ruby-on-rails - 如何在 Rails 中的 date_select 帮助器中设置默认日期

date - Elasticsearch中日期数据类型的平均聚合?