我有这两个函数以正确的格式创建一个新字符串(mm-dd-yyyy
)但是现在它似乎运行得不好......当我输入日期31-03-2013
时有效日期,它出现在04-01-2013
之后,就像在......之后的第一个月......
以下是两个功能:
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();
};
答案 0 :(得分:8)
月份日期是0月1日至12月11日之间的数字,
所以3月是4月......
这非常烦人,因为:
嗯... javascript的规格......继续。
您可以使用它来设置正确:
date.setMonth(parseInt(s[1], 10) - 1);
你可以在这里看到它的作用:
答案 1 :(得分:3)
试试这个:
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(parseInt(s[1],10)-1);
date.setYear(s[2]);
return date.sqlDate();
};