0

我知道使用 java 日历,您可以返回到以前的日期,但是如何使用 javascript 日期来做到这一点?假设我想倒退三个月,我该怎么做?我假设必须有一些逻辑来做到这一点,而不仅仅是做一个 setMonth(),因为回滚 3 个月可能会让你回到上一年,所以这一年也需要更新。

4

5 回答 5

1

为什么不使用 date.js 等日期库之一

http://datejs.com

Date.add(-3).month();

于 2013-10-01T04:14:44.337 回答
0

MomentJS是一个非常适合日期操作的 JavaScript 库。使用 MomentJS,您可以执行以下操作:

// Subtract 3 months from the current moment (now)
moment().subtract('months', 3);

如果您必须使用 JavaScript Date 对象,您可以使用 setMonth() 但它可能不可靠(如您所述)。举个例子:

// Get the next and previous month from now (first day of the month)
var now = new Date();
var futureMonth = now.setMonth(now.getMonth() + 1, 1);
var pastMonth = now.setMonth(now.getMonth() - 1, 1);

请注意,您需要指定第二个参数以将日期设置为 1。这将防止“下”个月跳过一个月(例如,如果您省略第二个,则将一个月添加到 2014 年 1 月 31 日将导致 2014 年 3 月 3 日范围)。

于 2013-10-01T04:13:31.497 回答
0

任何对新时期(即新年、月、周、日等)的翻转日期操作都会自动处理

var d = new Date();
    -> Tue Oct 01 2013 14:12:21 GMT+1000 (EST)

d.setMonth(d.getMonth() - 3);
    -> Mon Jul 01 2013 14:13:43 GMT+1000 (EST)

d.setMonth(d.getMonth() - 10);
    -> Sat Sep 01 2012 14:14:31 GMT+1000 (EST)
于 2013-10-01T04:13:58.107 回答
0

使用 get month 你可以得到 0-11 的值,所以如果你想回到 3 个月,如果没有月份,只需 chekc。大于 3 ,大于 3 不需要更改年份,否则将年份减 1

于 2013-10-01T04:16:07.120 回答
-1

不,您无需担心回滚年份。只需设置月份并保留它与 JS 渲染机。

var date = new Date();
date.setMonth(-10); //+ increase the month or - decrease
alert(date);  

JSFiddle

于 2013-10-01T04:15:35.630 回答