【问题标题】:Javascript: Adding days to any dateJavascript:将日期添加到任何日期
【发布时间】:2012-04-05 03:58:19
【问题描述】:

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

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

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

感谢您的帮助。

<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>

【问题讨论】:

    标签: javascript


    【解决方案1】:

    只需在日期上加上天数:

    var dt= new Date();
    
    dt.setDate(dt.getDate() + 31);
    
    console.log(dt);
    

    【讨论】:

    • d = new Date() 2015 年 2 月 13 日星期五 12:26:54 GMT+0200 d.setDate(13-20) 2015 年 1 月 24 日星期六 12:26:54 GMT+0200 似乎没有作为一个好方法
    【解决方案2】:

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

    【讨论】:

    • 这是一个很棒的图书馆!谢谢
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    相关资源
    最近更新 更多