[小结] javascript 时间类型使用小结

javascript Date 对象使用小结

Date 对象用于处理日期与时间。
创建 Date 对象: new Date()

以下四种方法同样可以创建 Date 对象:

var d = new Date(); //获取当前时间(标准时间格式)
var d = new Date(milliseconds); //milliseconds表示从 1970 年 1 月 1 日 00:00:00 至今的毫秒数
var d = new Date(dateString); //dateString格式:2019/5/1,返回标准时间格式
//dateString格式:2020/7/14(默认为00:00:00)或2020/7/14(默认为08:00:00)
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds); 
//↑可以局部/全部为空,不指定默认为0-->var d2 = new Date(79,5,24)表示:1979-06-24 00:00:00(Sun) ↑
  • ※ 把 (标准)日期格式 转化为指定的格式
	formatTime:function(dateData, type) {
		let value = '';
        let time = new Date(dateData); 
        let y = time.getFullYear(); //年(number)
        let m = time.getMonth() + 1; //月
        m = m < 10 ? `0${m}` : m;
        let d = time.getDate(); //日
        d = d < 10 ? `0${d}` : d;
        let hh = time.getHours(); //时
        hh = hh < 10 ? `0${hh}` : hh;
        let mm = time.getMinutes(); //分
        mm = mm < 10 ? `0${mm}` : mm;
        let ss = time.getSeconds(); //秒
        ss = ss < 10 ? `0${ss}` : ss;
        // yyyy-MM-dd HH:mm:ss
        if (type === 'yyyy-MM-dd HH:mm:ss') { //年-月-日 时:分:秒
			let value = `${y}-${m}-${d} ${hh}:${mm}:${ss}`;
        }
        if (type === 'yyyy-MM-dd HH:mm') { //年-月-日 时:分
        	let value = `${y}-${m}-${d} ${hh}:${mm}`;
        }
        if (type === 'yyyy-MM-dd') { //年-月-日:yyyy-mm-dd
            value = `${y}-${m}-${d}`;
        }
        if (type === 'yyyy-MM') { //年-月:yyyy-mm
            value = `${y}-${m}`;
        }
        if (type === 'HH:mm:ss') { //获取时间: 时+分+秒
            value = `${hh}:${mm}:${ss}`;
        }
        if (type === 'HH:mm') { //获取时间: 时+分
            value = `${hh}:${mm}`;
        }
        return value;
    },
  • ※ 获取星期
// ES6 取得星期数:周x,可以改为星期x
const getWeekDay = date => { //date参数:标准时间格式
  const weekDays = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
  let weekNum = date.getDay();  // number型,取得当天在该周的序数(从周日开始计数):0-6
  let weekDay = weekDays[weekNum]
  return weekDay
}
  • ※ 时间比较(取两个标准时间的差值)-可修改为日期比较等
timeGap(time0,time1) { //两参数均为标准时间格式
    // 获取当前时间时间截方式:let ms0 = new Date().getTime();
    let ms0 = time0.getTime(); //时间截-第一个时间
    let ms1 = time1.getTime(); //时间截-第二个时间
    // 相差毫秒数(时间截)
    let totalMS = ms1 - ms0; //存在正负,可区别先后关系
    let totalMSAbs = Math.abs(totalMS); //直接获取绝对值,仅取得差值
    // 相差分钟数
    let totalMins = parseInt((ms1 - ms0) / (1000 * 60)); //存在正负,区别大小:Math.abs(totalMins)获取绝对值
    // 需要返回相差分钟数可参考下面天数返回...
    // 返回相差天数...(可以直接俩日期相减---获得带正负的相差毫秒数,再进行后续判断和换算)
    let totalDaysRest = Math.abs(ms1 - ms0) % (1000 * 60 * 60 * 24); // 用于判断是否整除
    let totalDays = parseInt((ms1 - ms0) / (1000 * 60 * 60 * 24)); //存在正负,区别大小:Math.abs(totalDays)获取其绝对值
    let totalDaysAbs = 0; // 用于存放实际天数
    if(totalDaysRest > 0) { // 有额外时间,则天数需要加一
        totalDaysAbs = Math.abs(totalDays) + 1;
    } else if(totalDaysRest == 0) { //整除则没有额外天数直接返回绝对值
    	totalDaysAbs = Math.abs(totalDays);
    }
    return totalDaysAbs; //返回相差天数
}
  • 附:取得各个参数,获取特定 字符串格式时间
var oDay = new Date();  
oDay.getYear(); //当前年份 
oDay.getFullYear(); //完整的年月日(xx年,xx月,xx日)
oDay.getMonth(); //当前的月份(0-11,0代表1月)
oDay.getMonth()+1; //获取当前的实际月份(1-12);
oDay.getDate(); //当前的日(1-31)  
oDay.getDay(); //当前的星期X(0-6,0代表星期天)  
oDay.getTime(); //时间截:当前的时间(从1970.1.1开始的毫秒数)  
oDay.getHours(); //当前的小时数(0-23)  
oDay.getMinutes(); //当前的分钟数(0-59)  
oDay.getSeconds(); //当前的秒数(0-59)  
oDay.getMilliseconds(); //当前的毫秒数(0-999)  
oDay.toLocaleDateString(); //把 Date 对象的日期部分转换为字符串: 'yyyy/mm/dd'
var oTime=oDay.toLocaleTimeString(); //把 Date 对象的时间部分转为字符串格式:'下午hh:mm:ss';如:'上午8:30:12'
oDay.toLocaleString( ); //日期与时间转为字符串格式:'yyyy/mm/dd 下午hh:mm:ss'如:'2020/7/14 下午3:59:40'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值