如何在Javascript中确定从现在开始的一年

Ian*_*vis 87 javascript

我想从现在开始一年,但它不起作用.

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());
Run Code Online (Sandbox Code Playgroud)

输出:

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)
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢!

JP *_*ies 178

Date只需一行,这将在未来创建一年.首先我们得到fullYeara new Date,增加它,将其设置为a的年份new Date.您可能认为我们会在那里完成,但如果我们停止它会返回一个时间戳,而不是一个Date对象,所以我们将整个事物包装在一个Date构造函数中.

new Date(new Date().setFullYear(new Date().getFullYear() + 1))
Run Code Online (Sandbox Code Playgroud)

  • `setYear()`是[不建议使用](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setYear),应该使用`setFullYear()`. (12认同)

Poi*_*nty 57

你应该使用getFullYear()而不是getYear().getYear()返回实际年份减1900(因此相当无用).

  • 这不是很搞笑吗?要在javascript中获取一年后的日期,需要写:`new Date(new Date().setFullYear(new Date().getFullYear()+ 1))` (21认同)

pli*_*kou 27

由于setYear()已被弃用,正确的变种:

// plus 1 year
new Date().setFullYear(new Date().getFullYear() + 1)
// plus 1 month
new Date().setMonth(new Date().getMonth() + 1)
// plus 1 day
new Date().setDate(new Date().getDate() + 1)
Run Code Online (Sandbox Code Playgroud)

所有示例都返回Unix时间戳,如果你想获得Date对象 - 只需用另一个包装它new Date(...)


Abd*_*zad 8

用这个:

var startDate = new Date();
    startDate.setFullYear(startDate.getFullYear() - 1);
Run Code Online (Sandbox Code Playgroud)


Wav*_*lor 6

使用本页面和这里的一些答案,我想出了自己的答案,因为这些答案都没有完全解决它.

这是它的关键所在

var startDate = "27 Apr 2017";
var numOfYears = 1;
var expireDate = new Date(startDate);
expireDate.setFullYear(expireDate.getFullYear() + numOfYears);
expireDate.setDate(expireDate.getDate() -1);
Run Code Online (Sandbox Code Playgroud)

这里有一个JSFiddle,它有一个工作示例:https://jsfiddle.net/wavesailor/g9a6qqq5/