我知道使用 java 日历,您可以返回到以前的日期,但是如何使用 javascript 日期来做到这一点?假设我想倒退三个月,我该怎么做?我假设必须有一些逻辑来做到这一点,而不仅仅是做一个 setMonth(),因为回滚 3 个月可能会让你回到上一年,所以这一年也需要更新。
问问题
75 次
5 回答
1
于 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);
于 2013-10-01T04:15:35.630 回答