JS日期格式化---借鉴代码学习

   我传入的fmt=yyyy-MM-dd hh:mm:ss ,date是我数据库的数据

   function dateFtt(fmt, date) {   
            var o = {
                "M+": date.getMonth() + 1,                 //月份 ,js是从0开始的 
                "d+": date.getDate(),                    //日   
                "h+": date.getHours(),                   //小时   
                "m+": date.getMinutes(),                 //分   
                "s+": date.getSeconds(),                 //秒   
                "q+": Math.floor((date.getMonth() + 3) / 3), //季度   
                "S": date.getMilliseconds()             //毫秒   
            };
            //这个地方的y需要跟自己代码中的格式匹配,substring(int beginIndex, int endIndex)
            if (/(y+)/.test(fmt)) {
                fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
            }
            for (var k in o) {   //substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
                if (new RegExp('(' + k + ')').test(fmt)) {
                    fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)))
                }
            }
            return fmt;
        }

知识点说明:1、(y+)去匹配我fmt中的 yyyy,正则表达式中() 代表一个表达式,+是指多个字符

2、RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)的字符串

3、for(var k in o) 代表以k 在 o中遍历,根据fmt得知,会遍历到 M+ 和 d+ 两个元素,之后去fmt中匹配并格式化,最后输出

4、substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值