2013-01-25 53 views
0

-我有一個下拉列表上有從中用戶可以選擇一個一些選項。驗證下拉列表以獲得基於期權正確的日期選擇

- 選項爲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

我相信moment.js將是在這裏你的朋友。它是一個非常好的JavaScript日期操作工具 – Hoopdady

回答

1

嘗試使用此

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

如果你的約會以一天加試

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

@ anix--非常感謝你..你的代碼解決了我的問題。再次感謝你。 – Khushbu

0

Date.js是適用於各種JavaScript日期操作的便捷腳本。

增加天數n,以當天的語法是

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

在這種情況下,增加了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)