首页 > 技术文章 > 自己封装的一个js方法用于获取显示的星期和日期时间

fozero 2017-06-08 00:59 原文

自己封装的一个js方法用于获取显示的星期和日期时间

/**
 * 获取用于显示的星期和日期时间
 * @param date
 * @returns {string}
 */
function getWeek(date){
    //将字符串日期转换日期对象
    date = date.replace(/-/g, '/');
    var dd = new Date(date);
    var curDate = new Date();
    var curDate2 = new Date();
    var m = dd.getMonth()+1<10?"0"+(dd.getMonth()+1):dd.getMonth()+1;
    var d = dd.getDate()<10?"0"+dd.getDate():dd.getDate();
    var weekday=["周日","周一","周二","周三","周四","周五","周六"];
    var mynum=dd.getDay();

    var week,weekdate;
    var curMd = curDate.getMonth()+1+"-"+curDate.getDate();
    var md = dd.getMonth()+1+"-"+dd.getDate();
    //昨天
    curDate2.setDate(curDate2.getDate()-1);
    var curMd2 = curDate2.getMonth()+1+"-"+curDate2.getDate();
    //时间
    var hour = dd.getHours()<10?"0"+dd.getHours():dd.getHours();
    var minutes = dd.getMinutes()<10?"0"+dd.getMinutes():dd.getMinutes();
    if(curMd == md){
        week = "今天";
        weekdate = hour+":"+minutes;
    }else if(curMd2 == md){
        week = "昨天";
        weekdate = hour+":"+minutes;
    }else{
        week = weekday[mynum];
        weekdate =  m+"-"+d;
    }

    return week+"|"+weekdate;
}

上面的字符串日期对象转换在ios手机上面会有问题,需要通过正则先处理一下,将'-'替换成'/',如下:
date = date.replace(/-/g, '/');
var dd = new Date(date);

推荐阅读