js 时间相关


1、获取指定日期时间

若需要自定义格式,请自行拓展。

/**
 * 获取指定日期时间
 * @param {date, diffDay, format, connect}={时间,时间差值(天),格式,连接符} 
 */
const getCurrentTime = (date, format, diffDay, connect) => {
    var Y = date.getFullYear(); //得到年份
    var M = date.getMonth() + 1;//得到月份
    var D = date.getDate();//得到日期
    var WN = date.getDay();//得到周几
    var HH = date.getHours();//得到小时
    var MM = date.getMinutes();//得到分钟
    var SS = date.getSeconds();//得到秒
    var MS = date.getMilliseconds();//获取毫秒

	if (diffDay) {
      if (D === 1) {
        if (M === 1) {
          Y -= 1;
          M = 12;
          D = 31 - diffDay + 1;
        } else {
          M -= 1;
          if ([4, 6, 9, 11].includes(M)) {
            D = 30 - diffDay + 1;
          } else if (M === 2) {
            const day = Y%4 ? 28 : 29;
            D = day - diffDay + 1;
          } else {
            D = 31 - diffDay + 1;
          }
        }
      } else {
        D = diffDay ? (D - diffDay) : D;
      }
    }
  
    // 小于0就前面补零
    if (M < 10) M = "0" + M;
    if (D < 10) D = "0" + D;
    if (HH < 10) HH = "0" + HH;
    if (MM < 10) MM = "0" + MM;
    if (SS < 10) SS = "0" + SS;
    if (MS < 100) MS = "0" + MS;
    // 一周列表
    var arr_week = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");
    var W = arr_week[WN];
    
    return {
        time: Y + "年" + M + "月" + D + "日" + " " + HH + ":" + MM + ":" + SS + ":" + MS + " " + W,
        Y: Y,
        M: M,
        D: D,
        HH: HH,
        MM: MM,
        SS: SS,
        MS: MS,
        W: W
    };
}
// 使用案例
const date = new Date();
getCurrentTime(date);
// {time: "2021年06月02日 17:00:32:182 星期三", Y: 2021, M: "06", D: "02", HH: 17, …}

2、将时间转化为时间戳

/**
 * 将时间转化为时间戳
 * @param {time}={时间} 
 */
const timeToTimestamp = (time) => {
	return new Date(time).getTime();
}
// 使用案例
timeToTimestamp('2020-03-15 21:21:21');// 1584278481000

3、计算两个时间戳相差的时间

/**
 * 计算两个时间戳相差的时间
 * @param {begin_time, end_time}={一个时间戳,另一个时间戳} 
 */
const timeDiff = (begin_time, end_time) => {
    const diffTime = {
        day: 0,
        hour: 0,
        min: 0,
        sec: 0
    }
    const diff = Math.abs(end_time - begin_time);
    const remain_hour = diff % (24 * 60 * 60);
    const remain_min = remain_hour % (60 * 60);
  
    diffTime.day = Math.floor(diff / (24 * 60 * 60));
    diffTime.hour = Math.floor(remain_hour / (60 * 60));
    diffTime.min = Math.floor(remain_min / 60);
    diffTime.sec = remain_min % 60;
  
    return diffTime;
}
// 使用案例
const beginTime = new Date('2020-03-15 20:20:20').getTime();
const endtime = new Date('2021-03-15 21:21:21').getTime();
timeDiff(beginTime, endtime);// {day: 365042, hour: 8, min: 56, sec: 40}

4、ios 中 ‘y-m-d hⓂ️s’ 转时间戳为 NaN

let time = '2020-11-17'
let formateTime = time.replace(/-/g, '/')
const timeStamp = new Date(formateTime).getTime()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值