0

-我有一个下拉列表,其中有一些选项可供用户选择。

- 选项为 1 天、1 周、2 周、1 个月和 6 个月

-现在,当我选择选项 1 day时,今天的日期应该增加一并显示下一个日期。

-如果我选择 1 周,则应显示一周后的日期

-现在的问题是当我选择一个选项时,它有时会显示 date 大于 30/31

-我使用以下javacript功能:

 function select_duration(ddlcupon) {

            var skillsSelect = document.getElementById("ddlcupon");
            var selectedText = skillsSelect.options[skillsSelect.selectedIndex].text;

            if (selectedText == "1 Day") {

                var currentTime = new Date();
                var month = currentTime.getMonth() + 1;
                var day = currentTime.getDate() + 1;
                var year = currentTime.getFullYear();
                var exdate = month + "/" + day + "/" + year;

                document.getElementById('<%=txtEventDate.ClientID%>').value = exdate.toString();


            }
            if (selectedText == "1 Week") {

                var currentTime = new Date();
                var month = currentTime.getMonth() + 1;
                var day = currentTime.getDate() + 7;
                var year = currentTime.getFullYear();
                var exdate = month + "/" + day + "/" + year;

                document.getElementById('<%=txtEventDate.ClientID%>').value = exdate.toString();
            }
            if (selectedText == "2 Weeks") {

                var currentTime = new Date();
                var month = currentTime.getMonth() + 1;
                var day = currentTime.getDate() + 14;
                var year = currentTime.getFullYear();
                var exdate = month + "/" + day + "/" + year;
                document.getElementById('<%=txtEventDate.ClientID%>').value = exdate.toString();
            }
            if (selectedText == "1 Month") {

                var currentTime = new Date();
                var month = currentTime.getMonth() + 2;
                var day = currentTime.getDate();
                var year = currentTime.getFullYear();
                var exdate = month + "/" + day + "/" + year;
                document.getElementById('<%=txtEventDate.ClientID%>').value = exdate.toString();
            }
            if (selectedText == "6 Months") {

                var currentTime = new Date();
                var month = currentTime.getMonth() + 7;
                var day = currentTime.getDate();
                var year = currentTime.getFullYear();
                var exdate = month + "/" + day + "/" + year;
                document.getElementById('<%=txtEventDate.ClientID%>').value = exdate.toString();
            }

-有人可以帮我找个合适的约会吗?

4

3 回答 3

1

问题是你在增加日、月和年。因此,如果月份是 12,您将得到 13。您可以直接使用毫秒。例如:

var d = new Date('01/31/2013'); // Thu Jan 31 2013 00:00:00 GMT-0200 (BRST)
var addDay = 1000 * 60 * 60 * 24;
var currentMs = d.getTime();
d.setTime(currentMs + addDay);
console.log(d); // Fri Feb 01 2013 00:00:00 GMT-0200 (BRST)
于 2013-01-25T13:38:24.537 回答
1

尝试使用这个

var dt1 = new Date();    
var dt2 = new Date(dt1.getTime() + (86400000 * numberOfDay) );

如果您的日期增加了一天,请尝试

var dt2 = new Date(dt1.getTime() + (86400000 * 1 ) ); //so on
于 2013-01-25T13:46:01.407 回答
0

Date.js是用于各种 JavaScript 日期操作的便捷脚本。

将 n 天添加到当天的语法是

// Add 3 days to Today
Date.today().add(3).days();

在这种情况下,将 3 天添加到当前日期。

于 2013-01-25T13:38:22.133 回答