时间格式化,获取最近七天时间,获取昨天,明天得时间等

时间格式化

整理优化时间类发现之前发现大部分这样写的,获取当前日期,再一个个取年,月,日,再拼接成自己想要得格式

let curDate = new Date()
    let yyyy = curDate.getFullYear()
    let mm = curDate.getMonth()+1
    mm = mm<10 ? ("0"+mm) :mm
    let dd = curDate.getDate()
    dd = dd<10?("0"+dd) : dd
    let lastDate = `${yyyy}${mm}${dd}`

这种直接绑定在Date原型上得方法更便捷

let now  = new Date().Format('yyyyMMdd')

Date.prototype.Format = function (fmt) {
    if (fmt == undefined || fmt == null || fmt == "")
        return "";
    var o = {
        "M+": this.getMonth() + 1, //月份
        "d+": this.getDate(), //日
        "h+": this.getHours(), //小时
        "m+": this.getMinutes(), //分
        "s+": this.getSeconds(), //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds() //毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.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;
};

之前获取昨天,前天或者明天后天得时间大部分是用10006060*24 来计算得,现在也可以用下面得方法

//获取当前日期的某一天日期(负数为过去的时间,正数为后面的时间)  格式:20240123
//例:当前日期为"2024-01-22",getYesterday(-1)为2024-01-21, getYesterday(1)为2024-01-23,
function getYesterday(num) {
    let day = new Date();
    day.setDate(day.getDate() + num);
    let day2 = day.Format("yyyy-MM-dd")
    console.log(day2);
    return day2.replace(/-/g, '')
}
getYesterday(1)

获取指定日期的前面或后面某一天日期


/**
 * 获取指定日期的前面或后面某一天日期
 * @param {String} date 指定的日期
 * @param {Number} day 几天
 * @returns 几天后或前的日期
 */
export function getNextDate(date,day) {
    let dd = '';
    let dateType = date.includes('-');
    if(dateType) {
        dd = new Date(date);
    } else {
        let farmatDate = date.slice(0,4) + '-'+ date.slice(4,6) +'-'+ date.slice(6);
        dd = new Date(farmatDate);
    } 
    dd.setDate(dd.getDate() + day);
    let y = dd.getFullYear();
    let m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
    let d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
    return dateType? (y + "-" + m + "-" + d): (y + "" + m + "" + d + "");
};
posted @ 2024-01-23 09:12  张尊娟  阅读(13)  评论(0编辑  收藏  举报