我有一个文本框id =“somedate”,其日期值为“09/27/2009”
我正在寻找一种简单的方法来减去7天并将值替换为09/20/2009。 然后09/13/2009等...点击按钮
显然,我需要这个过程能够跨越数月和数年。
在jQuery中有一种简单的方法吗?
答案 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);