【发布时间】:2014-12-18 15:49:27
【问题描述】:
我正在为电子商务/租赁网站编写在线合同,需要显示第一次付款的日期。
第一笔付款应在每月 1 日或 15 日的第一次发生时到期,从合同签订之日起 30 天开始。因此,如果合同是在 1 月 10 日填写的,那么第一笔付款将在 2 月 15 日到期。
我不知道如何使用 JS 实现这一点,因此非常感谢您的帮助。谢谢!
编辑
假设我正在使用以下推荐的代码:
function calc() {
var invoiceDate = moment(document.getElementById("contractDate").value, ["M-D-YYYY"]).add(30, 'days');
while (invoiceDate.date() != 1 && invoiceDate.date() != 15) {
invoiceDate = invoiceDate.add(1, 'days')
}
document.getElementById("invoiceDate").innerHTML = invoiceDate.format("MMMM Do, YYYY");
}
calc()
<script type='text/javascript' src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.js"></script>
<input type="text" id="contractDate" onchange="calc()" value="12-18-2014">
<div id="invoiceDate"></div>
如何将其设置为自动更新到当前日期,而不需要填写文本表单?摆脱文本输入将最好防止人们捏造合同。有什么建议吗?
【问题讨论】:
-
只是一些简单的数学运算和Date Object。
-
我会看看moment.js。这将使您在使用 javascript 操作日期方面变得更加轻松。
-
如果日期是
Jan 15,还会是Feb 15吗?还是跳转到Mar 1? (它必须是 +30 但不能落在 30 我猜是问题) -
@BradChristie 在这种情况下,第一个付款日期是 2 月 15 日。
标签: javascript html asp.net date