2012-05-05 197 views
3

想獲得的日期和它 這裏修改日期是代碼沒有得到正確的

  <script type="text/javascript"> 
      $(function() { 
      $("#terms_of_payment").change(function(){ 
       var element = $(this).find('option:selected'); 
       var days = element.attr("value"); 
       var start = $('input[name="date"]').val(); 
       var date = new Date(start); 
         var day = date.getDate() + days; 
         var month = date.getMonth(); 
         var year = date.getFullYear(); 
       var edate = day + "-" + month + "-" + year; 
       alert(start); 
       alert(edate); 
       $('#due_date').val(edate); 
       }); 
       }); 
       </script> 

它給出正確的開始日期,但試圖添加到它的時候,它只是給我的錯誤的月和日,,,,, plz幫助

下面是HTML

  <div class="form-item"> 
      <label> 
       <span class="required">*</span> 
       date 
      </label> 

       <input type="text" readonly="readonly" value="" id="date" name="date" class="hasDatepicker">    
      </div> 
      <div class="form-item"> 
      <label> 
       due date 
      </label> 
       <input type="text" disabled="disabled" value="" id="due_date" name="due_date">    </div> 
       <div class="form-item"> 
       <label> 
       <span class="required">*</span> 
       terms-of-oayment 
       </label> 

       <select class="" id="terms_of_payment" name="terms_of_payment"> 
       <option selected="selected" label="---------" value="">---------  
       </option> 
       <option label="مستحقة الدفع لدى تسلمها" value="1">مستحقة الدفع لدى تسلمها</option> 
       <option label="مستحقة الدفع في غضون 15 يوما" value="15">مستحقة الدفع في غضون 15 يوما</option> 
       <option label="مستحقة الدفع في غضون 30 يوما" value="30">مستحقة الدفع في غضون 30 يوما</option> 
        <option label="مستحقة الدفع في غضون 45 يوما" value="45">مستحقة الدفع في غضون 45 يوما</option> 
        <option label="مستحقة الدفع في غضون 60 يوما" value="60">مستحقة الدفع في غضون 60 يوما</option> 
        <option label="مستحقة الدفع في غضون 90 يوما" value="90">مستحقة الدفع في غضون 90 يوما</option> 
       </select> 
        </div> 
+0

日期開始正確,但後來不工作? – necromancer

+0

正在使用警報知道發生了什麼錯誤,,, 第一個警報知道我的日期, 第二個(有問題)知道要插入的日期......它只是給出我「515-0-2012」第一場是日,但在結合月與日:S –

+0

請發佈您的相關HTML。 – Marc

回答

3

嘗試生成新的日期,像這樣:

var edate = new Date(date.getTime() + days *24*60*60*1000); 

另請參閱Add days to JavaScript Date

+0

它只是一直給我「start.getTime不是函數」 –

+0

抱歉,我的錯誤。 start.getTime()應該是date.getTime()(我已更新原始帖子)。 – Conan

3

兩個問題在這裏:

  1. .getMonth()返回0到11,而不是1到12參見http://www.w3schools.com/jsref/jsref_getmonth.asp

  2. 例如,假定日期爲2012/1/31和您要添加一天。你會產生2012年1月32日。

從理論上講,你會更成功地鑄造朱利安日期,然後添加日子。或者看看http://www.datejs.com/作爲一個偉大的庫來做日期數學,格式化和JavaScript解析。

+1

+1爲datejs庫:) – Conan