之前并没有了解到Date对象的setDate,setMonth,setFullYear,会如此强大,我们只需要对现有的时间进行叠加他就能自动完成日期的转换,修改代码如下:
//重写toString方法,将时间转换为Y-m-d H:i:s格式
Date.prototype.toString = function(){
return this.getFullYear() + "-" + (this.getMonth()+1) + "-" + this.getDate() + " " + this.getHours() + ":" + this.getMinutes() + ":" + this.getSeconds();
}
//格式化时间字符串
Date.prototype.toFormatString = function(format){
if(format == ""){
return this.toString();
}
var str = '';
str = format.replace(/Y|y/,this.getFullYear())
.replace(/M|m/,this.getMonth() + 1)
.replace(/D|d/,this.getDate())
.replace(/H|h/,this.getHours())
.replace(/I|i/,this.getMinutes())
.replace(/S|s/,this.getSeconds());
return str;
}
//在当前时间上添加年数
Date.prototype.addYear = function(years){
var cyear = this.getFullYear();
cyear += years;
this.setYear(cyear);
return this;
}
//在当前时间上添加天数
Date.prototype.addDay = function(days){
var cd = this.getDate();
cd += days;
this.setDate(cd);
return this;
}
//在当前时间上添加月数
Date.prototype.addMonth = function(months){
var cm = this.getMonth();
cm += months;
this.setMonth(cm);
return this;
}
//将php时间格式(Y-m-d H:i:s)转化为js日期对象
function phpDateToJsDate(phpDate){
if(phpDate == ""){
return new Date();
}
return new Date(Date.parse(phpDate.replace(/-/g,"/")));
}
现在才发现原来JS想要实现对日期的处理会如此的简单了,看下之前的代码真是囧啊!