代码编织梦想

【封装常见的函数】获取当前日期/当前日期时间/昨天日期/当前日期的一年前的日期/当前日期的前一个周日期/当前日期的前一个月日期/近12个月的月份数组/时间戳转日期格式/日期相减/桩号处理

【封装常见的函数】获取当前日期/当前日期时间/昨天日期/当前日期的一年前的日期/当前日期的前一个周日期/当前日期的前一个月日期/近12个月的月份数组/时间戳转日期格式/日期相减/桩号处理

1.桩号处理

要求输出的是数据格式为:KK000+000.000,验证

pileFunction(pile) {
    const XREG = (val) => { return val.replace(/[^a-zA-Z]/g,'') }
    const REG = (val) => { return val.replace(/[^\d.+]/g,'') }  // 提取桩号中的数字和 “+”
    const complementSart = (vlue) => {return vlue.padStart(3,0)} // 向前补位0
    const complementEnd = (vlue) => {return vlue.padEnd(3,0)} // 向前补位0
    let li = REG(pile).split('+');
    if(li[1].indexOf('.') !== -1){
        let lis2 = li[1].split('.');
        return XREG(pile).toUpperCase()+complementSart(li[0])+'+'+complementSart(lis2[0])+'.'+complementEnd(lis2[1])
    }else{
        return XREG(pile).toUpperCase()+complementSart(li[0])+'+'+complementSart(li[1])+'.000'
    }
}

pileFunction('zk1+2.3')
// 输出为:ZK001+002.300
pileFunction('k15+02')
// 输出为:K015+002.000
//这个方法还可以优化,加一个桩号的直接验证,输入是否符合桩号规则,字母数字几号数字小数点数字

2.获取当前日期

NowTime() {
    const date = new Date()   //调用Date函数
    const year = date.getFullYear()   //年
    const month = date.getMonth() + 1    //月
    const daily = date.getDate()   //日

    const time = year + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0")
    return time
}

3.获取当前日期时间

Now_DateTime() {
    const date = new Date()   //调用Date函数
    const year = date.getFullYear()   //年
    const month = date.getMonth() + 1    //月
    const daily = date.getDate()   //日
    const hours = date.getHours()    // 获取-当前小时    15时
    const minutes = date.getMinutes()     //获取---当前分钟    21分
    const seconds = date.getSeconds()    //获取-秒数    53秒
    const datetime = year + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0") + ' ' + hours.toString().padStart(2, "0") + ':' + minutes.toString().padStart(2, "0") + ':' + seconds.toString().padStart(2, "0")
    return datetime
}

4.获取昨天日期

Yesterday() {
    const date = new Date();
    date.setTime(date.getTime() - 3600 * 1000 * 24);
    const year = date.getFullYear(); //年
    const month = date.getMonth() + 1; //月
    const daily = date.getDate(); //日

    const time = year + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0")
    return time
}

5.获取当前日期的一年前的日期

NowDate_or_lastDate() {
    const date = new Date()   //调用Date函数
    const year = date.getFullYear()   //年
    const month = date.getMonth() + 1    //月
    const daily = date.getDate()   //日
    // const hours = date.getHours()    // 获取-当前小时    15时
    // const minutes = date.getMinutes()     //获取---当前分钟    21分
    // const seconds = date.getSeconds()    //获取-秒数    53秒
    const NOWdatetime = year + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0");
    const LASTdatetime = year - 1 + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0")
    return [NOWdatetime + ' 00:00:00', LASTdatetime + ' 23:59:59']
}

6.获取当前日期的前一个周日期

oldweekTime() {
    const date = new Date();
    date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
    const year = date.getFullYear()   //年
    const month = date.getMonth() + 1   //月
    const daily = date.getDate()   //日

    const oldtime = year + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0")
    return oldtime
}

7.获取当前日期的前一个月日期

oldTime() {
    const date = new Date();
    date.setTime(date.getTime() - 3600 * 1000 * 24 * 30);
    const year = date.getFullYear()   //年
    const month = date.getMonth() + 1   //月
    const daily = date.getDate()   //日

    const oldtime = year + '-' + month.toString().padStart(2, "0") + '-' + daily.toString().padStart(2, "0")
    return oldtime
}

8.获取近12个月的数组

get12Months() {
    let dataArr = [];
    let data = new Date();
    data.setMonth(data.getMonth() + 1, 1); //获取到当前月份,设置月份
    for (let i = 0; i < 12; i++) {
        data.setMonth(data.getMonth() - 1); //每次循环一次 月份值减1
        let m = data.getMonth() + 1;
        // m = m < 10 ? "0" + m : m;
        dataArr.push(data.getFullYear() + "_" + m);
    }
    return dataArr;
}
// 当前日期:2022-3, 得到是2022-3,2022-2,2022-1,2021-12,2021-11,2021-10,2021-9,2021-8,2021-7,2021-6,2021-5,2021-4,2021-3,

9.时间戳转日期格式:2022-07-07 12:12:12

timestampToTime(timestamp) {
    var date = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
    var Y = date.getFullYear() + '-';
    var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
    var D = date.getDate();
    var h = date.getHours() + ':';
    var m = date.getMinutes() + ':';
    var s = date.getSeconds();
    return Y + M + D.toString().padStart(2, '0') + ' ' + h.padStart(3, '0') + m.padStart(3, '0') + s.toString().padStart(2, '0');
}

10.日期相减

subTime(time1, time2) {
    let date1 = new Date(time1.toString()).getTime()   //调用Date函数
    let date2 = new Date(time2.toString()).getTime()   //调用Date函数
    let date = date1 - date2
    let hours = Math.floor(date / 1000 / 3600)
    let minutes = (date / 1000 / 60) % 60

    return hours + "小时" + minutes.toFixed(0) + "分钟"
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45527702/article/details/131018190