js时间的一些处理

1.判断是否为同一天
function isSameDay(t) {
    return new Date(Number(t)).toDateString() === new Date().toDateString();
}

 2. 将时间字符串转换为时间戳NAN

var data = "2019-01-22 11:11:11";
//将"-"换成"/",IOS不支持‘-’
var time = data.replace(/-/g, '/');
//转换成时间戳
time = new Date(time).getTime()

3.时间戳转化为字符串

function handleDate(type, timestamp = +new Date()){
    let myDate = Number(timestamp) + 8 * 3600 * 1000,
        dateStr = new Date(myDate).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, ''),
        dateArr = dateStr.split(' '),
        dateArr2 = dateArr[0].split('-'),
        str = dateStr //其他 2022-08-29 14:19:49

    switch(type) {
        case 1: //2022-08-29
            str = dateArr[0]
            break
        case 2: //14:19:49
            str = dateArr[1]
            break
        case 3: //2022年08月29日
            str = `${dateArr2[0]}年${dateArr2[1]}月${dateArr2[2]}日`
            break
        case 4: //08月29日
            str = `${dateArr2[1]}月${dateArr2[2]}日`
            break
        default:
    }

    return str
}

 

4.字符串转化为时间

function getDateFromString(dateString) {
    var parts = dateString.split(' ');
    if(parts.length < 1) {
        return null;
    }
    var part1 = parts[0].split('-');
    if(part1.length != 3) {
        return null;
    }
    var d = new Date(part1[0], part1[1] - 1, part1[2]);
    if(parts[1] && d) {
        var part2 = parts[1].split(':');
        if(part2) {
            d.setHours(part2[0]);
            d.setMinutes(part2[1]);
            d.setSeconds(part2[2]);
        }
    }
    return d;
}

5.比较日期大小

function compDate(date1, date2) {
    var a = Date.parse(date1) - Date.parse(date2);
    // console.log("a:"+a);
    if(a < 0) {
        // console.log("date1小!");
    } else if(a > 0) {
        // console.log("date1大!");
    } else if(a == 0) {
        // console.log("时间相等!");
    } else {
        return 'exception';
    }
    return a;
}

 

 6.设置剩余时间

var timeFlag = false 
var timeLeftTimer = setInterval(function() {
    setTimeLeft('2019-12-18 15:00:00')
}, 1000)

//设置剩余时间
function setTimeLeft(endTime) {
    endTimestamp = strDateTransformTimestamp(endTime)
    var timeLeft = endTimestamp - new Date().getTime()
    if (timeLeft <= 0) {
        timeFlag = true
    }
    var timeLeftD = parseInt(timeLeft / 86400000) //剩余天数
    var timeLeftH = parseInt((timeLeft % 86400000) / 3600000) //剩余小时数
    var timeLeftM = parseInt((timeLeft % 3600000) / 60000) //剩余分钟数
    var timeLeftS = parseInt((timeLeft % 60000) / 1000) //剩余秒数
    var timeLeftStr = timeLeftD + '天' + timeLeftH + '小时' + timeLeftM + '分' + timeLeftS + '秒'
    // console.log(timeLeftStr)if (timeFlag) {
        clearInterval(timeLeftTimer)
    }
}

//日期转换为时间戳
function strDateTransformTimestamp(str) { //str '2015-03-05 17:59:00'
    str = str.substring(0,19);    
    str = str.replace(/-/g,'/'); 
    return new Date(str).getTime();
}

 7.返回星期几

function getWeek(type, timestamp = +new Date()) {
    let myDate = new Date(Number(timestamp)),
        nowDay = myDate.getDay(),
        weekday = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]

    switch(type) {
        case 1:
            weekday = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
            break
        default:
    }
    return weekday[nowDay]
}

 

 

 

 
posted @ 2019-09-20 11:12  justsilky  阅读(256)  评论(0编辑  收藏  举报