如何在Javascript中确定一年后

2022-08-30 02:04:36

我试图从现在的日期开始一年,但它不起作用。

JS:

var now = new Date();

var oneYr = new Date();
oneYr.setYear(now.getYear() + 1);
$("#yearFromNow").append(oneYr.toString());

var oneMonth = new Date();
oneMonth.setMonth(now.getMonth() + 1);
$("#monthFromNow").append(oneMonth.toString());

输出:

one mo. = Thu Dec 22 112 15:16:01 GMT-0500 (Eastern Standard Time)

one yr. = Sun Jan 22 2012 15:16:01 GMT-0500 (Eastern Standard Time)

这一年有 - ??月份正确显示 。Dec 22 112Jan 22 2012

如果你想修补它,http://jsbin.com/alezaj/edit#javascript,html,live。这是在Chrome和Firefox中。

谢谢!


答案 1

这将在将来只用一条线创建一个正好一年的时间。首先我们从 a 得到 ,递增它,将其设置为 a 的年份。你可能会认为我们会在那里完成,但是如果我们停止,它将返回一个时间戳,而不是一个对象,所以我们把整个事情包装在一个构造函数中。DatefullYearnew Datenew DateDateDate

new Date(new Date().setFullYear(new Date().getFullYear() + 1))

答案 2

您应该使用 代替 。 返回实际年份减去 1900(因此相当无用)。getFullYear()getYear()getYear()

因此,从现在开始正好一年的日期将是:

var oneYearFromNow = new Date();
oneYearFromNow.setFullYear(oneYearFromNow.getFullYear() + 1);

请注意,如果您在 2 月 29 日执行此操作,则日期将进行调整。

同样,您可以通过 和 获得从现在起一个月后的日期。如果您在12月这样做,则不必担心从当前年份“滚存”到下一年;日期将自动调整。月中的某一天也是如此,通过 和 .getMonth()setMonth()getDate()setDate()