JS 时间格式化插件

JS 时间格式化插件

本文连接:http://blog.csdn.net/tomorrow13210073213/article/details/68491007
转载请注明出处

  • 需求背景
    javascript功能越来越强大,所能完成的任务也越来越复杂;但Date对象一直没有提供格式化的方法,由于项目中需要用到很多时间格式化,所以自己写了个小插件;
  • 思路
    部分代码来自网络,这里只是将代码做了一下规范,定义成插件的方式;
  • 插件定义
(function(win) {

    function _util() {

        this.date_fmt = function(fmt, date) {
            if (!date) { date = new Date(); }
            var o = { "M+" : date.getMonth() + 1, // 月份 "d+" : date.getDate(), // 日 "h+" : date.getHours(), // 小时 "m+" : date.getMinutes(), // 分 "s+" : date.getSeconds(), // 秒 "q+" : Math.floor((date.getMonth() + 3) / 3), // 季度 "S" : date.getMilliseconds() // 毫秒 };
            if (/(y+)/.test(fmt)){ fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length)); }
            for ( var k in o){ 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;
        }

        this.datetime = function(date) {
            if (!date) { date = new Date(); }
            return $util.date_fmt("yyyy-MM-dd hh:mm:ss", date);
        };

        this.date = function(date) {
            if (!date) { date = new Date(); }
            return $util.date_fmt("yyyy-MM-dd", date);
        };

        this.time = function(date) {
            if (!date) { date = new Date(); }
            return $util.date_fmt("hh:mm:ss", date);
        };
    }

    var $util = new _util();

    win.$util = $util;
})(window);

代码很简单,不做赘述,请看测试;
* 测试

$util.date();
"2017-03-30"
$util.time();
"17:54:33"
$util.datetime();
"2017-03-30 17:54:51"
$util.date_fmt("yyyy-MM-dd hh:mm:ss");
"2017-03-30 17:55:42"

以上测试代码没有指定要格式化的时间,插件默认采用系统当前时间;

var t_date = new Date(1490161815967);
$util.date(t_date );
"2017-03-22"
var t_date = new Date(1490161815967);
$util.time(t_date);
"13:50:15"
var t_date = new Date(1490161815967);
$util.datetime(t_date);
"2017-03-22 13:50:15"
var t_date = new Date(1490161815967);
$util.date_fmt("yyyy-MM-dd hh:mm:ss",t_date);
"2017-03-22 13:50:15"

以上代码指定了要格式化的时间;

代码片段中会有些不太规范或不太优雅的写法,还请诸君不吝指证;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值