我有這兩個函數創建一個正確格式的新字符串(mm-dd-yyyy
),但現在它似乎不能很好地工作...當我輸入日期31-03-2013
這是一個有效的日期,它出來與04-01-2013
在第一後的一個月....日期將2013年4月1日而不是2013年3月31日
這裏有兩個功能:
Date.prototype.sqlDate = Date.prototype.sqlDate || function() {
return this.getMonth() + "-" + this.getDate() + "-" + this.getFullYear();
};
String.prototype.sqlDate = String.prototype.sqlDate || function() {
var date = new Date(0);
var s = this.split("-");
//If i log "s" here its output is:
// ["31", "03", "2013", max: function, min: function]
date.setDate(s[0]);
date.setMonth(s[1]);
date.setYear(s[2]);
return date.sqlDate();
};
請記住,JavaScript將返回基於0的月份值,而日期和年份將基於1。所以一月份就會是0. – 2013-03-12 21:17:30
呵呵。忘了這個。 – FabianCook 2013-03-12 21:18:06
Javascript的這個「特性」是我遇到過的最愚蠢的設計決定之一。 – 2013-03-12 21:19:18