也写dateUtil.js

yl.dateUtil = {

    /**

     *  y   年

     *  M   月

     *  d   日

     *  H   时            h   时(am/pm)

     *  m   分

     *  s   秒

     *  S   毫秒

     *  a   上午/下午(am/pm)

     *  setInterval(function(){

     *     input111.value = yl.dateUtil.dateStr(new Date(), "要一个给小于9的d数m字s前H面M加0返回字符串的方法yyyy");

     *  }, 1000);

     */

    dateStr: function (date, str) {

        if (!date instanceof Date) {

            return str;

        }

        //match之后得到数组

        //遍历数组,

        //判断各个元素长度、内容,做对应替换

        var reg = /yyyy|yy|MM|M|dd|d|HH|H|h|mm|m|ss|s|SSS|S|a/g;

        var strArr = str.match(reg);

        for (var i = 0, len = strArr.length; i < len; i++) {

            //console.log(strArr[i]);

            switch (strArr[i]) {

                case "yyyy":

                    str = str.replace(/yyyy/, date.getFullYear());

                    break;

                case "yy":

                    str = str.replace(/yy/, (date.getFullYear()+"").substr(2,2));

                    break;

                case "MM":

                    str = str.replace(/MM/, this.getLe9Str(date.getMonth()+1));

                    break;

                case "M":

                    str = str.replace(/M/, date.getMonth()+1);

                    break;

                case "dd":

                    str = str.replace(/dd/, this.getLe9Str(date.getDate()));

                    break;

                case "d":

                    str = str.replace(/d/, date.getDate());

                    break;

                case "HH":

                    str = str.replace(/HH/, this.getLe9Str(date.getHours()));

                    break;

                case "H":

                    str = str.replace(/H/, date.getHours());

                    break;

                case "h":

                    var s = date.getHours();

                    str = str.replace(/h/, s > 12 ? s % 12 : s);

                    break;

                case "mm":

                    str = str.replace(/mm/, this.getLe9Str(date.getMinutes()));

                    break;

                case "m":

                    str = str.replace(/m/, date.getMinutes());

                    break;

                case "ss":

                    str = str.replace(/ss/, this.getLe9Str(date.getSeconds()));

                    break;

                case "s":

                    str = str.replace(/s/, date.getSeconds());

                    break;

                case "SSS":

                    str = str.replace(/SSS/, this.getLe99Str(date.getMilliseconds()));

                    break;

                case "S":

                    str = str.replace(/S/, date.getMilliseconds());

                    break;

                case "a":

                    str = str.replace(/a/, date.getHours() > 12 ? "pm" : "am");

                    break;

            }

        }

        //console.log(str);

        return str;

    },

    strDate: function () {



    },

    //要一个给小于9的数字前面加0返回字符串的方法

    getLe9Str: function (num) {

        return num > 9 ? "" + num : "0" + num;

    },

    //小于100前面加00或者0

    getLe99Str: function (num) {

        if (num > 9 && num < 100) {

            return "0"+num;

        } else {

            return this.getLe9Str(num);

        }

    }

};

调用

<body>

    <input type="text" id="input111" style="width:500px;"/>

<script type="text/javascript" src="ylUtil.js"></script>



<script type="text/javascript">



var input111 = document.getElementById("input111");

setInterval(function(){

    input111.value = yl.dateUtil.dateStr(new Date(), "a h:mm:ss`SSS~~~~yyyy年M月d日");

    }, 1);

</script>

</body>

ps:

  1. 觉得js用new Date("2013/08/01 11:20:00")的方式还是挺好的。所以strDate没写了。
  2. dateStr方法用到参数格式从java的simpleDateFormat里面取的。所以与它的是一致的。
  3. 用来把个日期转成指定字符串个人觉得够用了,关于性能问题,欢迎各路大虾提点。
  4. http://www.cnblogs.com/nimeiz/p/3446292.html

你可能感兴趣的:(Date)