js获取当前时间、计算时间差、倒计时

//获取当点年月日
const NowDate = () => {
    let date = new Date();
    let year = date.getFullYear();
    let month = date.getMonth() + 1;
    month = month < 10 ? '0' + month : month;
    let day = date.getDate();
    day = day < 10 ? '0' + day : day;
    return `${year}${month}${day}`;
};
//获取当前时分秒
const NowTime = () => {
    let date = new Date();
    let h = date.getHours();
    h = h < 10 ? '0' + h : h;
    let m = date.getMinutes();
    m = m < 10 ? '0' + m : m;
    let s = date.getSeconds();
    s = s < 10 ? '0' + s : s;
    return `${h}${m}${s}`;
};
//秒转换时分秒
second2String(sec){
    var hours   = Math.floor(sec/ 3600)
    var minutes = Math.floor(sec % 3600 / 60)
    var seconds = Math.floor(sec % 3600 % 60)
    var hourStr = String(hours)
    var minStr  = String(minutes)
    var secStr  = String(seconds)
    return minStr + "′" + secStr + "″"
},
//倒计时
class Countdown {
   constructor(options) {
        let { endTime } = options;
        this.endTime = endTime ? new Date(endTime) : new Date('2022/1/31');
    }

    init() {
        setInterval(() => {
            this.runTime(); //输出
        }, 1000);
    }

    runTime() {
        const nowTime = new Date();
        const diffTime = this.endTime.getTime() - nowTime.getTime();
        const day = Math.floor(diffTime / (1000 * 60 * 60 * 24));
        const hour = Math.floor(diffTime / (1000 * 60 * 60) % 24);
        const minute = Math.floor(diffTime / (1000 * 60) % 60);
        const second = Math.floor(diffTime / 1000 % 60);
        return `${day}${hour}${minute}${second}`
    }
}

const time = new Countdown();
time.init();



const countdown = (endtime = '') => {
 const nowTime = new Date();
    const endTime = endtime ? new Date(endtime) : new Date('2022/1/31');
    const diffTime = this.endTime.getTime() - nowTime.getTime();
    const day = Math.floor(diffTime / (1000 * 60 * 60 * 24));
    const hour = Math.floor(diffTime / (1000 * 60 * 60) % 24);
    const minute = Math.floor(diffTime / (1000 * 60) % 60);
    const second = Math.floor(diffTime / 1000 % 60);
    return `${day}${hour}${minute}${second}`
}
//时间差
const TimeDifference = (startime, endTime) => {
    const stime = new Date(startime).getTime();
    const etime = new Date(endTime).getTime();
    const diffTime = etime - stime;
    const day = Math.floor(diffTime / (1000 * 60 * 60 * 24));
    const hour = Math.floor(diffTime / (1000 * 60 * 60) % 24);
    const minute = Math.floor(diffTime / (1000 * 60) % 60);
    const second = Math.floor(diffTime / 1000 % 60);
    return `${day}${hour}${minute}${second}`
};
//时间格式化
const dateFormat = (timestamp, formats) => {
 // formats格式包括
  // 1. Y-m-d
  // 2. Y-m-d H:i:s
  // 3. Y年m月d日
  // 4. Y年m月d日 H时i分
  formats = formats || 'Y-m-d';s
  let zero = function (value) {
      if (value < 10) {
          return '0' + value;
      }
      return value;
  };
  let myDate = timestamp ? new Date(timestamp) : new Date();
  let year = myDate.getFullYear();
  let month = zero(myDate.getMonth() + 1);
  let day = zero(myDate.getDate());
  let hour = zero(myDate.getHours());
  let minite = zero(myDate.getMinutes());
  let second = zero(myDate.getSeconds());
  return formats.replace(/Y|m|d|H|i|s/ig, function (matches) {
      return ({
          Y: year,
          m: month,
          d: day,
          H: hour,
          i: minite,
          s: second
      })[matches];
  });
};
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值