2015-12-29 371 views
0

這裏是我的代碼,基於天數得到開始日期和結束日期

function getDateonperiod(elem) 
{ 
    var periodval=$("#period"+elem).val(); 
    var days = periodval * 30; 
    var startDate=new Date(); 
    var endDate = new Date(); 
    endDate.setDate(endDate.getDate() + days); 
    var strDate = startDate.getFullYear() + "-" + (startDate.getMonth()+1) + "-" + startDate.getDate(); 
    $("#from_date"+elem).val(strDate); 
    $("#to_date"+elem).val((endDate.getFullYear()+'-'+endDate.getMonth() + 1)+'-'+endDate.getDate()); 
} 

輸入電平變化字段值越來越天days的數量。我得到正確的開始日期,但結束日期如果輸入值1工作正常,但它不止一個它從這個2016-11-272016-21-28從當前日期返回。如何解決這個問題?

回答

1

你錯過了一個括號:

endDate.getFullYear()+'-'+(endDate.getMonth() + 1)+'-'+endDate.getDate(); 

試試這個:

$("#period").change(function() { 
 
    var periodval=$("#period").val(); 
 
    var days = periodval * 30; 
 
    var startDate=new Date(); 
 
    var endDate = new Date(); 
 
    endDate.setDate(endDate.getDate() + days); 
 
    var strDate = startDate.getFullYear() + "-" + (startDate.getMonth()+1) + "-" + startDate.getDate(); 
 
    $("#from_date").val(strDate); 
 
    $("#to_date").val(endDate.getFullYear()+'-'+(endDate.getMonth() + 1)+'-'+endDate.getDate()); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="number" id="period" /> 
 
<input type="text" id="from_date" /> 
 
<input type="text" id="to_date" />

0

您沒有正確添加天。

function getDateonperiod(elem) 
{ 
    var periodval=$("#period"+elem).val(); 
    var days = periodval * 30; 
    var startDate=new Date(); 
    var endDate = new Date(startDate.getFullYear(),startDate.getMonth(),startDate.getDate()+n); 
    var strDate = startDate.getFullYear() + "-" + (startDate.getMonth()+1) + "-" + startDate.getDate(); 
    $("#from_date"+elem).val(strDate); 
    $("#to_date"+elem).val((endDate.getFullYear()+'-'+endDate.getMonth() + 1)+'-'+endDate.getDate()); 
} 
0

只需使用這個庫 http://momentjs.com/

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"> 

您與momentjs代碼

function getDateonperiod(elem) 
{ 
    var periodval=$("#period"+elem).val(); 
    var days = periodval * 30; 
    var startDate = new moment(); 
    var endDate = new moment(); 
    endDate.add(days,'days'); 
    var strStartDate = startDate.format("YYYY - MM - DD"); 
    var strEndDate = endDate.format("YYYY - MM - DD"); 
    $("#from_date"+elem).val(strDate); 
    $("#to_date"+elem).val(strEndDate); 
} 
+0

格式您的編碼plz – Bek

+0

@Bek它被錯誤張貼..我已編輯它 –

1

可以使用moment.js這裏

var days = 10; 
 
var dateFormat = 'YYYY-MM-DD'; 
 
var startFormatted = moment().format(dateFormat); 
 
var endFormatted = moment().add(days, 'day').format(dateFormat); 
 
console.log(startFormatted) 
 
console.log(endFormatted)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script> 
 
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>

0

我只是擴展日期函數添加天。這可能會幫助你:

Date.prototype.addDays = function(days) { 
    this.setDate(this.getDate() + parseInt(days)); 
    return this; 
}; 
$("#period").change(function() { 
    var periodval = $("#period").val(); 
    var days = periodval; 
    var startDate = new Date(); 
    var endDate = new Date(); 
    endDate.addDays(days); 
    //endDate.setDate(endDate.getDate() + days); 
    var strDate = startDate.getFullYear() + "-" + (startDate.getMonth() + 1) + "-" + startDate.getDate(); 
    $("#from_date").val(strDate); 
    $("#to_date").val(endDate.getFullYear() + '-' + (endDate.getMonth() + 1) + '-' + endDate.getDate()); 
}); 
相關問題