验证下拉列表以根据所选选项获取正确的日期

时间:2013-01-25 13:24:55

标签: javascript asp.net date drop-down-menu

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

- 选项包括1天,1周,2周,1个月和6个月

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

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

- 现在问题是,当我选择一个选项时,有时会显示大于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();
            }

- 有人可以帮助我获得正确的日期吗?

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:1)

尝试使用此

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

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

var dt2 = new Date(dt1.getTime() + (86400000 * 1 ) ); //so on

答案 2 :(得分:0)

Date.js是一个方便的脚本,适用于各种JavaScript日期操作。

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

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

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