js中日期的格式化

有些时候,js中日期显示出来是 yyyy/MM/dd 这种格式,但是我需要yyyy-MM-dd格式的

简单粗暴的直接replace总是不太好,或者通过Date对象的相关方法拼接起来,也还是有些粗暴

要是可以格式化就好了,

在网上收集了一些资料,经过修改调试,完成可用,OK,以下的代码:

(1)首先需要扩展日期Data的格式化方法

 

//扩展日期格式化方法
Date.prototype.parseStr = function (format) {
    var YYYY = this.getFullYear(); //2011  

//    var YY = YYYY.substring(2);   // 11  
    format = format.replaceAll("@YYYY@", YYYY);
//    format = format.replaceAll("@YY@", YY);

    var M = this.getMonth() + 1;
    var MM = (M < 10) ? "0" + M : M;
//    var MMM = mths[M - 1];
//    format = format.replaceAll("@MMM@", MMM);
    format = format.replaceAll("@MM@", MM);
    format = format.replaceAll("@M@", M);

    var D = this.getDate();
    var DD = (D < 10) ? "0" + D : D;
    format = format.replaceAll("@DD@", DD);
    format = format.replaceAll("@D@", D);

    var h = this.getHours();
    var hh = (h < 10) ? "0" + h : h;
    format = format.replaceAll("@hh@", hh);
    format = format.replaceAll("@h@", h);
    var m = this.getMinutes();
    var mm = (m < 10) ? "0" + m : m;
    format = format.replaceAll("@mm@", mm);
    format = format.replaceAll("@m@", m);
    var s = this.getSeconds();
    var ss = (s < 10) ? "0" + s : s;
    format = format.replaceAll("@ss@", ss);
    format = format.replaceAll("@s@", s);
//    var dayOfWeek = this.getDay();
//    format = format.replaceAll("@WEEK@", WEEKs[dayOfWeek]);
//    format = format.replaceAll("@WEK@", WEKs[dayOfWeek]);
    return format;
}  

 

(2)由于用到了string.replaceAll方式,这个也是string的扩展:

String.prototype.replaceAll = function (s1, s2) {
    return this.replace(new RegExp(s1, "gm"), s2);
}


(3)写出格式化方法:

//日期格式化
function parseDate(dateStr, hasTime) {
    var date = new Date(dateStr.replace(/-/g, "/"));
    if (hasTime)
        return date.parseStr("@YYYY@-@MM@-@DD@ @hh@:@mm@:@ss@");
    return date.parseStr("@YYYY@-@MM@-@DD@");
}


 

(4)具体调用:

<button value="日期test" οnclick="t1()">dd
    </button>
    <button value="时间test" οnclick="t2()">
    </button>
    <script>
        function t1() {
            var str = "2015/5/8";
            alert(parseDate(str, false));
        }

        function t2() {
            var str = "2015/5/8 10:01:02";
            alert(parseDate(str, true));
        }
    </script>


 

Ok,搞定了!

 

 


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值