重写了一个格式化日期的方法,支持把日期格式或时间戳按指定的格式输出,应该能满足大多数时候的需求。
说明
说明 | |
---|---|
y | 年份的后2位 |
yy | 4位数完整年份 |
m | 月份 |
mm | 月份小于10前补零 |
d | 日 |
dd | 日小于10前补零 |
h | 小时 |
hh | 小时小于10前补零 |
i | 分钟 |
ii | 分钟小于10前补零 |
s | 秒钟 |
ss | 秒钟小于10前补零 |
案例
formatDate("2017-02-23 12:09:12", "ymd"); //17223
formatDate("2017-02-23 12:09:12", "y年m月d日 h时i分s秒"); //17年2月23日 12时9分12秒
formatDate("1398200549", "yy-mm-dd"); //2014-04-23
formatDate("1398200549000", "y-m-d h:i:s"); //14-4-23 5:2:29
formatDate("1398200549000", "yy-mm-dd hh:ii:ss"); //2014-04-23 05:02:29
formatDate("1398200549000", "yy/mm/dd hh:i:s"); //2014/04/23 05:2:29
formatDate("1398200549000", "yy年m月d日 h时i分s秒"); //2014年4月23日 5时2分29秒
源代码如下
function formatDate(value, pattern) {
var date = value.indexOf('-') >= 0 ? Date.parse(value) : value.length == 10 ? value * 1000 : value;
date = new Date(parseInt(date));
var YY = date.getFullYear();
var y = YY.toString().substr(2);
var m = date.getMonth() + 1;
var MM = m < 10 ? '0' + m : m;
var d = date.getDate();
var DD = d < 10 ? '0' + d : d;
var h = date.getHours();
var HH = h < 10 ? '0' + h : h;
var i = date.getMinutes();
var II = i < 10 ? '0' + i : i;
var s = date.getSeconds();
var SS = s < 10 ? '0' + s : s;
var newdate;
newdate = pattern.replace(/yy/g, YY).replace(/y/g, y);
newdate = newdate.replace(/mm/g, MM).replace(/m/g, m);
newdate = newdate.replace(/dd/g, DD).replace(/d/g, d);
newdate = newdate.replace(/hh/g, HH).replace(/h/g, h);
newdate = newdate.replace(/ii/g, II).replace(/i/g, i);
newdate = newdate.replace(/ss/g, SS).replace(/s/g, s);
return newdate ;
}