我有一個文本框的id =「somedate」具有日期值「2009年9月27日」jQuery的減本週日
我正在尋找一個簡單的方法來減去7天,更換價值到09/20/2009。 然後09/13/2009,等...點擊一個按鈕
很明顯,我需要的過程能夠跨越數月和數年。
在jQuery中有這樣做的簡單方法嗎?
我有一個文本框的id =「somedate」具有日期值「2009年9月27日」jQuery的減本週日
我正在尋找一個簡單的方法來減去7天,更換價值到09/20/2009。 然後09/13/2009,等...點擊一個按鈕
很明顯,我需要的過程能夠跨越數月和數年。
在jQuery中有這樣做的簡單方法嗎?
我不認爲這個工具存在於jQuery中,但有像Datejs這樣的庫(clicky)使管理日期變得更容易。日期數學有太多的陷阱,試圖推出自己的。
Date.parse('Sept 30th, 2009, 10:30 AM').addWeeks(-1);
不是在原生JQuery中,但可能有也可能沒有庫使它更容易一些。我建議你看看JQuery Timepicker插件的內部(或者其中的一個,如果有多個的話),看看他們用的是什麼。
除了獲取輸入的內容,我不認爲jQuery與你的問題有很大關係。
您應該查看日期/時間計算的Javascript Date object。
我的兩分錢:
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());
老問題,但這種使用Date對象的getTime()函數實際上是很容易的。嘗試類似:(使用負值減去)
Date.prototype.addWeeks = function (value) {
var milliseconds = this.getTime();
return new Date(milliseconds + (value * 1000 * 60 * 60 * 24 * 7));
};
試試看是否有幫助。
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);
謝謝...有意義的是不總是認爲特定於語言或框架。 – Jason 2009-09-30 17:48:25
有時它有助於退後一步,看到那裏(: – Kieron 2009-10-01 07:43:12