jQuery从日期减去一周

时间:2009-09-30 16:06:59

标签: jquery

我有一个文本框id =“somedate”,其日期值为“09/27/2009”

我正在寻找一种简单的方法来减去7天并将值替换为09/20/2009。 然后09/13/2009等...点击按钮

显然,我需要这个过程能够跨越数月和数年。

在jQuery中有一种简单的方法吗?

6 个答案:

答案 0 :(得分:3)

除了获取输入的内容之外,我认为jQuery与你的问题没什么关系。

您应该查看Javascript Date object日期/时间计算。

答案 1 :(得分:1)

我不相信这个工具存在于jQuery中,但是像Datejs(clicky)这样的库使管理日期变得更加容易。日期数学确实存在太多陷阱,试图自己动手。

Date.parse('Sept 30th, 2009, 10:30 AM').addWeeks(-1);

答案 2 :(得分:1)

老问题,但使用Date对象的getTime()函数实际上很容易。尝试类似:(使用负值减去)

Date.prototype.addWeeks = function (value) {
    var milliseconds = this.getTime();
    return new Date(milliseconds + (value * 1000 * 60 * 60 * 24 * 7));
};

答案 3 :(得分:0)

不是在本机JQuery中,但可能有也可能没有库使它更容易一些。我建议你看一下JQuery Timepicker插件的内部结构(如果有多个插件,可以看看其中一个),看看他们使用了什么。

答案 4 :(得分:0)

我的两分钱:

var d = new Date($("#textbox").attr("value"));
var nd = new Date(d - new Date(7*24*60*60*1000));

function f(s) { return s[1] ? s : "0"+s; }; // ensure string is two chars long
$("#textbox").attr("value",
    f((nd.getMonth()+1).toString()) + "/" +
    f(nd.getDate().toString()) + "/" +
    nd.getFullYear());

答案 5 :(得分:0)

尝试它是否有帮助。

var date = new Date('2013','00','10');
/* Here YYYY, Month ( 00-11 ), Date (1-31) */
alert('the original date is '+date);
var newdate = new Date(date);
newdate.setDate(newdate.getDate() - 7);
var nd = new Date(newdate);
alert('the new date is '+nd);