ts封装格式化时间

35 篇文章 0 订阅
27 篇文章 0 订阅

之前一直在用js时间工具,往往用Date.prototype.format的方式来封装,虽然代码量上会比ts少,但是为什么还用ts封装,自然是为了提高B格呀!最近一段时间迷恋上了ts,之前写了一年的java现在用上这玩意儿真是慢慢的回忆啊,每一次写构造函数、getter和setter方法的时候都会想起最初的java导师为我们讲解这两个的区别,功能,优化,现在感觉真的很感谢当时的松哥!废话说完了就来代码吧。

/**
 * 时间类-->创建时间,格式化时间
 * @param date
 * @param fmt
 */
export class DateUtil {
    private date:Date;
    private fmt:string
    public constructor(date:Date, fmt:string) {
        this.date = date ? date : new Date()
        this.fmt = fmt ? fmt : 'yyyy-MM-dd hh:mm:ss'
    }
    public getDate():Date {
        return this.date;
    }
    public setDate(date:Date):void {
        this.date = date
    }
    public getFmt():string {
        return this.fmt;
    }
    public setFmt(fmt:string):void {
        this.fmt = fmt
    }
    public format = ():string => {
        let _date = this.getDate()
        let fmt = this.getFmt()
        let o:any = {
            "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(let 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;
    }
}

非常简单的一个类,在这种完全支持ES6再加上类型限制,感觉真的完全放飞了自我。

对了,目前是一个喜欢js的csser,感兴趣的可以看下B站视频,对于砖工的我习惯于收集喜欢又实用的css作品。

这里是B站传送门

自己也写了一点点Demo

这里是GitHub传送门

个人网站(升级中)

http://www.wlittleyang.com

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值