gpt4 book ai didi

javascript - setDate 与 getDate + n 返回今天的日期 + n

转载 作者:行者123 更新时间:2023-11-28 11:35:21 25 4
gpt4 key购买 nike

我希望 d2 为 d1 + 14 天,而是今天的日期 + 14 天。

<script type="text/javascript">
var d1 = new Date(2014, 7, 1);
var d2 = new Date();
d2.setDate(d1.getDate() + 14);

// d1 = Fri Aug 01 2014 00:00:00 GMT+0100 (GMT Daylight Time)
document.write("d1 = " + d1);
document.write("<br></br>")

// today's date is 16-04-2014
// d2 = Tue Apr 15 2014 17:36:03 GMT+0100 (GMT Daylight Time)
document.write("d2 = " + d2);
</script>

如何使 d2 = d1 + 14 天?

最佳答案

setDate 有点令人惊讶,它设置现有实例的月份日期。由于您已将 d2 初始化为今天,因此您只需更改该日期的月份,而不考虑 d1 的任何其他方面。

您可能想要:

var d1 = new Date(2014, 7, 1);  // A specific date
var d2 = new Date(d1); // Clone that date
d2.setDate(d1.getDate() + 14); // Move forward 14 days

这样一来,d1 的日期为 8 月 1 日,d2 的日期为 8 月 15 日。

另一个选项是:

var d1 = new Date(2014, 7, 1);
var d2 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate() + 14);

顺便说一句,即使你已经过了月底,这两种方法仍然有效。

第二个选项的完整示例:Live Copy

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Date plus 14 days</title>
<style>
body {
font-family: sans-serif;
}
</style>
</head>
<body>
<script>
(function() {
var d1, d2;

display("Starting with August 1st:")
d1 = new Date(2014, 7, 1);
d2 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate() + 14);
display("d1 = " + d1);
display("d1 = " + d2);
document.body.appendChild(document.createElement('hr'));

display("Starting with August 20th:")
d1 = new Date(2014, 7, 20);
d2 = new Date(d1.getFullYear(), d1.getMonth(), d1.getDate() + 14);
display("d1 = " + d1);
display("d1 = " + d2);

function display(msg) {
var p = document.createElement('p');
p.innerHTML = String(msg);
document.body.appendChild(p);
}
})();
</script>
</body>
</html>

关于javascript - setDate 与 getDate + n 返回今天的日期 + n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23115433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com