在javascript开发中,我们会遇到日期时间格式化的问题,一般而言,默认我们都是 采用yyyy-MM-dd hh:mm:ss这样的格式,简单的做法就是获取时间的各个字段,年、月、日、时、分、秒,然后通过字符串拼接的方式组成这样的日期时间格式,当月份,日期,小时,分钟,秒数不足10的时候,前面补充0来达到这样的目的。但是一般而言,这种格式化方式比较死板,当我们更换一种格式化方式的时候,就需要重写一个函数。
这里给出一个通过正则来实现日期格式化的例子,它的思路很巧妙,利用一个map映射,存放月、日、时、分、秒,然后依次通过字符替换的方式,将格式化表达式替换为年月日时分秒的表达式,最后还需要算上年的替换。
测试代码如下,这个方法只需要修改格式化表达式就可以达到日期格式化目的了。
var Utils = {
formatDate:function(time,format){
var date = time||new Date();
var map ={
'y' : date.getFullYear(),
'M' : date.getMonth()+1,//month
'd' : date.getDate(),//date
'H' : date.getHours(),//hours
'm' : date.getMinutes(),//minutes
's' : date.getSeconds() //seconds
};
for(var i in map){
if(map.hasOwnProperty(i)){