js 将CST的时间字符串转换成需要的日期格式字符串

JavaScript0139

js 将CST的时间字符串转换成需要的日期格式字符串,第1张

dateFormat = function (date, format) {

date = new Date(date)

var o = {

'M+' : date.getMonth() + 1, //month

'd+' : date.getDate(), //day

'H+' : date.getHours(), //hour

'm+' : date.getMinutes(), //minute

's+' : date.getSeconds(), //second

'q+' : Math.floor((date.getMonth() + 3) / 3), //quarter

'S' : date.getMilliseconds() //millisecond

}

if (/(y+)/.test(format))

format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))

for (var k in o)

if (new RegExp('(' + k + ')').test(format))

format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length))

return format

}

console.log(dateFormat('Mon Apr 27 09:08:20 CST 2015','yyyy-MM-dd HH:mm:ss'))

最好能在数据库查询的时候就转了,前端处理的话,没有专门的方法,得自己去写:

<html>

  <head>

    <script language="javascript">

      function Window_Load(){

        var str = "Tue Jul 16 01:07:00 CST 2013"

        alert(formatCSTDate(str,"yyyy-M-d hh:mm:ss")) //2013-7-16 16:24:58

        

        alert(formatDate((new Date()),"yyyy-MM-dd")) //2013-07-15 

        alert(formatDate((new Date()),"yyyy/M/d")) //2013/7/15 

      } 

      

      //格式化CST日期的字串

      function formatCSTDate(strDate,format){

        return formatDate(new Date(strDate),format)

      }

      

      //格式化日期,

      function formatDate(date,format){

        var paddNum = function(num){

          num += ""

          return num.replace(/^(\d)$/,"0$1")

        }

        //指定格式字符

        var cfg = {

           yyyy : date.getFullYear() //年 : 4位

          ,yy : date.getFullYear().toString().substring(2)//年 : 2位

          ,M  : date.getMonth() + 1  //月 : 如果1位的时候不补0

          ,MM : paddNum(date.getMonth() + 1) //月 : 如果1位的时候补0

          ,d  : date.getDate()   //日 : 如果1位的时候不补0

          ,dd : paddNum(date.getDate())//日 : 如果1位的时候补0

          ,hh : date.getHours()  //时

          ,mm : date.getMinutes() //分

          ,ss : date.getSeconds() //秒

        }

        format || (format = "yyyy-MM-dd hh:mm:ss")

        return format.replace(/([a-z])(\1)*/ig,function(m){return cfg[m]})

      } 

    </script>

  </head>

  <body onload="Window_Load()">

  

  </body>

</html>

第一种方法

自定义函数

//date 是一个 Date实例

format(date){

return date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDay()

}

第二种

修改Date原形函数 因为Date的输出函数比较多 我们就拿toLocaleDateString()方法来重写

代码如下:

 Date.prototype.toLocaleDateString = function(DatePattern){       

  if(/yyyy.MM.dd/.test(DatePattern)){

        DatePattern = DatePattern.replace("yyyy",this.getFullYear()).replace("MM",this.getMonth()+1).replace("dd",this.getDay())

        return DatePattern

        }

       return this.toLocaleString()

  }

这里你可以以一个时间格式作为参数:

var date = new Date()

var str = date.toLocaleDateString("yyyy-MM-dd")//返回值为格式化之后的日期

当然 并不能很全的格式化 ,这里也只是提供思路。