将时间戳转化成「时间:分钟」的形式:

time(first) {  const date = new Date(first * 1000);  // this.commentTime = date.toLocaleString();  const hour = date.getHours() < 10 ? `0${date.getHours()}` : date.getHours();  const minute =  date.getMinutes() < 10 ? `0${date.getMinutes()}` : date.getMinutes();  const dateTime = `${hour}:${minute}`;  return dateTime;},

这边toLocaleString的话也行,但需要转化时区。还是自己封装一个吧。

使用的时候:

 <span
   class="message-time"
   :value="time(comInfo.create_time)"
 ></span>


2020.08.23更新

/**
 * Parse the time to string
 * @param {(Object|string|number)} time
 * @param {string} cFormat
 * @returns {string | null}
 */export function parseTime(time, cFormat) {
  if (arguments.length === 0) {return null;
  }
  const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';
  let date;
  if (typeof time === 'object') {date = time;
  } else {if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {  time = parseInt(time, 10);}if ((typeof time === 'number') && (time.toString().length === 10)) {  time = time * 1000;}date = new Date(time);
  }
  const formatObj = {y: date.getFullYear(),m: date.getMonth() + 1,d: date.getDate(),h: date.getHours(),i: date.getMinutes(),s: date.getSeconds(),a: date.getDay(),
  };
  const timeStr = format.replace(/{([ymdhisa])+}/g, (result, key) => {const value = formatObj[key];// Note: getDay() returns 0 on Sundayif (key === 'a') {  return ['日', '一', '二', '三', '四', '五', '六'][value];}return value.toString().padStart(2, '0');
  });
  return timeStr;}/**
 * @param {number} time
 * @param {string} option
 * @returns {string}
 */export function formatTime(time, option) {
  if ((`${time}`).length === 10) {time = parseInt(time, 10) * 1000;
  } else {time = +time;
  }
  const d = new Date(time);
  const now = Date.now();

  const diff = (now - d) / 1000;

  if (diff < 30) {return '刚刚';
  } if (diff < 3600) {// less 1 hourreturn `${Math.ceil(diff / 60)}分钟前`;
  } if (diff < 3600 * 24) {return `${Math.ceil(diff / 3600)}小时前`;
  } if (diff < 3600 * 24 * 2) {return '1天前';
  }
  if (option) {return parseTime(time, option);
  }
  return (`${d.getMonth()  + 1}月${  d.getDate()}日`// ${//   d.getHours()// }时${//   d.getMinutes()// }分`
  );}export function param2Obj(url) {
  const search = url.split('?')[1];
  if (!search) {return {};
  }
  return JSON.parse(`{"${decodeURIComponent(search)  .replace(/"/g, '\\"')  .replace(/&/g, '","')  .replace(/=/g, '":"')  .replace(/\+/g, ' ')
  }"}`);}

使用:

 <viui-text
   style="margin-left: 90rt;font-size: 12dp;lineHeight: 24dp;"
   :style="messageTime"
 >
   {{ comInfo.create_time | formatTime }} </viui-text>import { formatTime } from '@util/formatDate';


export default {
  name: 'XXX',
  filters: {
    formatTime,
  },
}

还有一种:

/**
 * 发表时间转换 (多久以前发表的)
 * @export
 * @param {String} seconds 发表时间距离当前时间的秒数
 * @returns {String}} 转换后的文字描述
 * example1:65 => 1分钟前
 * example2:3622 => 1小时前
 */export function transTimePassed(postTime) {
  // seconds非0,且等于''或null或undefine时,则不显示
  if (!postTime) {return '';
  }
  const now = (new Date().getTime()) / 1000;
  const seconds = now - (Number(postTime));
  if (seconds <= 0) {return '刚刚发布';
  }
  if (seconds < 60) {return `${Math.floor(seconds)}秒前`;
  }
  const minutes = seconds / 60;
  if (minutes < 60) {return `${Math.floor(minutes)}分钟前`;
  };
  const hours = minutes / 60;
  if (hours < 24) {return `${Math.floor(hours)}小时前`;
  };
  const days = hours / 24;
  if (days <= 7) {return `${Math.floor(days)}天前`;
  };
  // const months = days / 30;
  if (days >= 7) {const jsTimestamp = new Date(postTime * 1000);const year = jsTimestamp.getFullYear();const hour = jsTimestamp.getHours();const minute = jsTimestamp.getMinutes();const seconds = jsTimestamp.getSeconds();const currentYear = new Date().getFullYear();if (currentYear === year) {  return `${jsTimestamp.getMonth() + 1}月${jsTimestamp.getDate()}日${hour}时${minute}分${seconds}秒`;}return `${year}年${jsTimestamp.getMonth() + 1}月${jsTimestamp.getDate()}日${hour}时${minute}分${seconds}秒`;
  }
  return '';}

为啥越看以前的代码越有一种自己怎么这么笨的感觉,噗吐血了…