js日期格式化

重寫了一個格式化日期的方法,支持把日期格式或時間戳按指定的格式輸出,應該能滿足大多數(shù)時候的需求。

說明

說明
y 年份的后2位
yy 4位數(shù)完整年份
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 ;
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容