js在操作时间的时候没有像java和.NET里面那么方便,java和.net里面对时间操作都有封装好的类, java里面SimpleDateformat对时间格式化使用还是挺方便,不过.NET里面直接 DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");ToString()内部写出需要的时间格式,转换相对更方便一点,这里写的一个小的扩展方法,方便对时间就行格式化,具体代码如下:
(function(w){
var add0=function(inputIntValue){
if(inputIntValue<10){
inputIntValue="0"+inputIntValue;
//因 月 日 时 分 秒 会存在只有个位数字,这样加0稍微美观一点
//用2000-01-01 01:02:02 不会出现 2000-1-1 1:2:2
}
return inputIntValue;
};
w.prettyDateString=function(inputDateString,dateType){
if(inputDateString==undefined||inputDateString==null||inputDateString==''){
inputDateString=new Date(); //空值则取当前时间
}
inputDateString=new Date(inputDateString);
if(inputDateString=="Invalid Date"){ //对时间扩展new Date().toPrettyDateString("yyyy-MM-dd")这里没关系,不会有问题
inputDateString=new Date(); //但是如果直接用prettyDateString("sdfg")作为函数使用可以对他进行判断验证
}
var year=inputDateString.getFullYear();
var month=add0(inputDateString.getMonth()+1); //month从0开始记所以加1
var day=add0(inputDateString.getDate());
var hour=add0(inputDateString.getHours());
var minute=add0(inputDateString.getMinutes());
var second=add0(inputDateString.getSeconds());
var result=year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second;
if(dateType==null){
return result;
};
result=dateType.replace(/yyyy/,year).replace(/MM/,month).replace(/dd/,day).replace(/hh/,hour).replace(/mm/,minute).replace(/ss/,second);
return result;
}
Date.prototype.toPrettyDateString=function(dateType){ //时间扩展方法
return prettyDateString(this,dateType);
};
})(window);
具体使用方式入下:
var datestr=new Date();
console.log(prettyDateString(datestr));
console.log(prettyDateString(datestr,"yyyy-MM-dd"));
console.log(datestr.toPrettyDateString());
console.log(datestr.toPrettyDateString("yyyy-MM-dd hh:mm:ss"));
console.log(datestr.toPrettyDateString("yyyy-MM-dd hh时mm分ss秒"));
console.log(datestr.toPrettyDateString("yyyy年MM月dd日 hh时mm分ss秒"));
运行结果如下:
2016-06-30 11:10:31
2016-06-30
2016-06-30 11:10:31
2016-06-30 11:10:31
2016-06-30 11时10分31秒
2016年06月30日 11时10分31秒