使用Javascript获取前一天日期

4

我想使用JavaScript获取六个月前的日期。

我正在使用以下方法:

var curr = date.getTime(); // i will get current date in milli seconds
var prev_six_months_date = curr - (6* 30 * 24 * 60* 60*1000);
var d = new Date();
d.setTime(prev_six_months_date);

这是获取最近六个月日期的正确方法吗?是否还有更好的方法。

如果这个问题能够解决,我想使用类似的逻辑来获取之前的日期,例如最近2个月和最近10年。

如果有人能提供jQuery的解决方案,那就非常感谢了。


由于您标记了jQuery,因此您可以使用$.now()替换date.getTime() - alex
虽然这个问题已经存在很长时间了,但仍然可以使用以下代码: var d = new Date(); d.setMonth(d.getMonth()-6)同样地,您也可以使用 setYears()setDate() - Scrooge McD
3个回答

6

为日期添加更多功能

Date.prototype.addDays = function (n) {
    var time = this.getTime();
    var changedDate = new Date(time + (n * 24 * 60 * 60 * 1000));
    this.setTime(changedDate.getTime());
    return this;
};

用法

var date = new Date();
/* get month back */
date.addDays(-30);

/* get half a year back */
date.addDays(-30 * 6);

如果这是你在处理日期方面唯一需要的功能,就不需要额外的库了。根据你的需求,还可以为Date的原型创建更多的函数。


增加功能的好方法。 - Mohit Pandey

1

我建议你看一下date.js。它经过充分测试,并且具有非常流畅的界面,可以在JavaScript中操作日期和时间。

以下是使用date.js的示例:

(6).months().ago()

1

尝试:

var curr = new Date();
var prev_six_months_date = new Date(curr);
var prev_two_months_date = new Date(curr);
var prev_ten_years_date = new Date(curr);
prev_six_months_date.setMonth(curr.getMonth() - 6);
prev_two_months_date.setMonth(curr.getMonth() - 2);
prev_ten_years_date.setFullYear(curr.getFullYear() - 10);
console.log(prev_six_months_date.toString());
console.log(prev_two_months_date.toString());
console.log(prev_ten_years_date.toString());
console.log(curr.toString());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接