2015-12-29 359 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()); 
}); 
相关问题