2

我现在已经阅读了许多主题,但还没有找到一个完全正确的主题。

这是我正在尝试做的事情:
1)解析以 mm/dd/yy 格式提供且通常不是今天的账单日期
2)在日期中添加可变天数。这些术语保存在下面的dueTime 数组中。我在这里限制为30天。
3) 根据账单日期+付款条件,计算账单到期日期,以mm/dd/yy格式返回。

这是我尝试过的。我传递给新日期的信息是我所期望的,但新日期的输出绝不是我所期望的。

谢谢你的帮助。

<html>
<head>
<script>
function calculateDueTime(){
    var billDate = document.getElementById('billDateId').value;
    var key = document.getElementById('termsId').value;
    var dueTime = new Array();
    dueTime[1] = 30;
    var billDate = billDate.split('/');
    var newDate = new Date( parseInt( billDate[2] ) + '/' + parseInt( billDate[0] ) + '/' + ( parseInt( billDate[1] ) + parseInt( dueTime[key] ) ) ); 
    document.getElementById('dueDateId').value = newDate.toString();
}
</script>
</head>
<body>

<input name="billDate" id="billDateId" value="5/1/11" /> 
Or any value in mm/dd/yy or m/d/yy format
<select name="terms" id="termsId" onchange="calculateDueTime()">
   <option value="1">Net 30</option>
</select>
<input name="dueDate" id="dueDateId" />

</body>
</html>
4

2 回答 2

5

只需将天数添加到日期:

var dt= new Date();

dt.setDate(dt.getDate() + 31);

console.log(dt);
于 2012-04-04T19:58:19.420 回答
1

我建议看看 Datejs ( http://www.datejs.com/ )。我经常使用这个库来处理日期,我发现这在 JS 中是一个真正的痛苦。

于 2012-04-04T19:56:18.867 回答