时间分段函数

本文介绍了如何利用时间格式化函数和时间分段函数来生成从9:00到23:00,每隔30分钟的时间段列表,格式为"mm:ss"。示例输出包括09:00、09:30、10:00等,直至23:30。
  • 时间格式化函数
  • 格式:
    yyyy-MM-dd hh:mm:ss.S
     const formatDate =function (date:Date,fmt:string) {
            let 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(let k in o)
                if(new RegExp("("+ k +")").test(fmt))
                {
                    // @ts-ignore
                    fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
                }
            return fmt;
        };
  • 时间分段函数
    开始时间 结束时间 间隔时间段 格式
    9:00 23:00 30 “mm:ss”
    生成例子:[09:00,09:30,10:00,10:30,11:00,…,23:30]
    const  generateTimesArray=(startTime1:string,endTime1:string,duration:number,format:string="yyyy-MM-dd hh:mm:ss")=>{
        let Y=[];
        let startTime=new Date(startTime1);
        let endTime=new Date(endTime1);
        Y.push(formatDate(startTime,format));
        let temTime: Date =startTime;
        temTime.setMinutes(temTime.getMinutes()+duration)
        while (temTime<endTime){
            Y.push(formatDate(temTime,format));
            temTime.setMinutes(temTime.getMinutes()+duration)
        }
        Y.push(formatDate(endTime,format));
        return Y;
    }
    const MiniTool={
        formatDate,
        generateTimesArray
    }
    export default MiniTool
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值