JavaScript日期格式化方法
JavaScript的Date对象有有8个方法用于输出为字符串格式日期,如下图

具体使用如下图:

以上的方法的日期格式都是固定的,开发人员无法指定日期的格式,就像在Java中的SimpleDateFormat类一样可以指定format字符串。
但是有一个第三方的库JsJava中的DateFormat.js模块,为我们封装了日期格式化功能。
示例如下

图中,引入第三方库的顺序不能变,因为他们是继承关系。
也可以自定义实现对于日期的格式化并功能,代码如下:
<script type="text/javascript">
Date.prototype.format = function(format)
{
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format))
{
format=format.replace(RegExp.$1,(this.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;
}
var d = new Date();
document.write('日期对象为:');
document.write(d);
var str = d.format('yyyy-MM-dd');
var today = document.getElementById("todayButton");
today.value = str;
</script>
这段代码非本人所写,转自:http://www.nowamagic.net/javascript/js_DateFormat.php该博客内容。
我仔细读了该代码,其中对时间值补零的代码段很佩服,
("00"+ o[k]).substr((""+ o[k]).length))
现将原值左补两个零,再将补零后的字符串使用substr进行切割,切割的其实索引有原字段值的长度确定。
这段代码写的很牛。