date 时间转换

获取时间戳

Math.floor(new Date().getTime() / 1000);
(new Date()).getTime();
(new Date()).valueOf();
Date.parse(new Date());

时间戳转时间

/*
 * timestamp: 时间戳
 * type: 时间格式 0-6
 */
toDate(timestamp, type) {
  function lessTen(n) {
      return Number(n) < 10 ? `0${n}` : n;
  }

  const date = new Date(timestamp * 1000);      //时间戳为10位需*1000,时间戳为13位的话不需乘1000
  const Y = date.getFullYear();                 // 年
  const M = lessTen(date.getMonth()+1);         // 月
  const D = lessTen(date.getDate());            // 日
  const h = lessTen(date.getHours());           // 时
  const m = lessTen(date.getMinutes());         // 分
  const s = lessTen(date.getSeconds());         // 秒

  let newDate = [
    `${Y}${M}${D}${h}:${m}:${s}`,
    `${Y}${M}${D}日}`,
    `${h}:${m}:${s}`,
    `${M}${D}${h}:${m}`,
    `${M}${D}`,
    `${h}:${m}`
  ];
  return newDate[type];
}

计算是否过期

/**
 * endTs: 最后期限
 * curTs: 当前时间
 * 判断活动是否结束:1=已过期, 0=未过期
 */
isOverEndTime(endTs, curTs) {
  curTs = parseInt(curTs * 1000 / 1000, 10);
  return Number(endTs) > Number(curTs) ? 1 : 0;
}

计算失效时间

computeExpireTime(nowTime, endTime) {
  const leftTime = endTime - nowTime;
  let result = '';
  if (leftTime > 0) {
    const d = Math.floor((leftTime / 1000 / 60 / 60 / 24));
    const h = Math.floor((leftTime / 1000 / 60 / 60) % 24);
    const m = Math.floor((leftTime / 1000 / 60) % 60);
    const s = Math.floor((leftTime / 1000) % 60);
    result = `${d < 10 ? `0${d}` : d}${h < 10 ? `0${h}` : h}${m < 10 ? `0${m}` : m}${s < 10 ? `0${s}` : s}秒后失效`;
  } else {
    result = '已失效';
  }
  return result;
}

获取凌晨零点时间戳

/*
 * top:获取今日凌晨时间
 * bottom:获取明日凌晨时间
 */
getZeroTime(type){
  return type === 'top'
    ? (new Date()).setHours(0,0,0,0)/1000
    : (new Date()).setHours(24,0,0,0)/1000;
},