Javascript中标准的时间日期输出格式为一长串,类似于“Thu Feb 01 0001 01:01:01 GMT+0800 (China Standard Time)”。这种格式稍显冗余。

下面的代码是通过prototype方式,向Date对象添加了一个自定义的函数来实现自定义的格式化输出

  1. <script language="JavaScript">
  2. Date.prototype.format = function(format) //author: meizz
  3. {
  4.   var o = {
  5.     "M+" : this.getMonth()+1, //month
  6.     "d+" : this.getDate(), //day
  7.     "h+" : this.getHours(), //hour
  8.     "m+" : this.getMinutes(), //minute
  9.     "s+" : this.getSeconds(), //second
  10.     "q+" : Math.floor((this.getMonth()+3)/3), //quarter
  11.     "S" : this.getMilliseconds() //millisecond
  12.   }
  13.   if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
  14.     (this.getFullYear()+"").substr(4 - RegExp.$1.length));
  15.   for(var k in o)if(new RegExp("("+ k +")").test(format))
  16.     format = format.replace(RegExp.$1,
  17.       RegExp.$1.length==1 ? o[k] :
  18.         ("00"+ o[k]).substr((""+ o[k]).length));
  19.   return format;
  20. }
  21. alert(new Date().format("yyyy-MM-dd"));
  22. alert(new Date("january 12 2008 11:12:30").format("yyyy-MM-dd hh:mm:ss"));
  23. </script>

还有一种方法,是通过toISOString函数,它返回一个ISO标准的格林尼治时间,格式形如2014-06-05T03:23:08.882Z,所以要格式化一下

  1. new Date().toISOString().replace(/T/, ' ').replace(/\..+/, '')
10-20 23:29