首先你解析它,然後你使用dt.setDate(dt.getDate() + 1)
。但是,您必須手動解析它,或使用DateJS或類似的;該格式尚未在所有主流瀏覽器中支持(new Date(date_str)
將無法正常工作可靠跨瀏覽器;請參閱下面的註釋)。然後將其轉換回您的格式。
這些方針的東西:
function incr_date(date_str){
var parts = date_str.split("-");
var dt = new Date(
parseInt(parts[0], 10), // year
parseInt(parts[1], 10) - 1, // month (starts with 0)
parseInt(parts[2], 10) // date
);
dt.setDate(dt.getDate() + 1);
parts[0] = "" + dt.getFullYear();
parts[1] = "" + (dt.getMonth() + 1);
if (parts[1].length < 2) {
parts[1] = "0" + parts[1];
}
parts[2] = "" + dt.getDate();
if (parts[2].length < 2) {
parts[2] = "0" + parts[2];
}
return parts.join("-");
}
Live example
注意setDate
正確處理滾動到下個月(和年如果需要的話)。
Live example
上述被測試和工程上IE6,IE7,IE8; Chrome上的Chrome,Opera和Firefox; Chrome,Opera,Firefox和Safari。
有關此格式支持JavaScript的注意事項:new Date(string)
構造在JavaScript中只有最近不得不將接受標準化的格式,在2009年12月發佈的ECMAScript 5th edition當瀏覽器都支持您的格式將得到支持,但作爲在這篇文章中,沒有發佈的IE版本(甚至沒有IE8)支持它。其他最近的瀏覽器大多都是。
轉到http://stackoverflow.com/a/8295943/792103的答案 – jalil 2011-11-28 12:42:00