- 我有一个下拉列表列表,其中有一些选项可供用户选择。
- 选项包括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();
}
- 有人可以帮助我获得正确的日期吗?
答案 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天添加到当前日期。