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

validate a dropdown list to get proper date based on the option selected

本文关键字:获取 日期 选项 下拉列表 验证      更新时间:2023-09-26
-

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

- 选项是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();
            }

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

尝试使用这个

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

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

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

问题是你正在增加日,月和年。因此,如果月份是 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)

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

将 n 天添加到当前日期的语法是

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

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