1. export default{
  2. // 计算当前日期星座
  3. getHoroscope(date) {
  4. let c = ['摩羯','水瓶','双鱼','白羊','金牛','双子','巨蟹','狮子','处女','天秤','天蝎','射手','摩羯']
  5. date=new Date(date);
  6. let month = date.getMonth() + 1;
  7. let day = date.getDate();
  8. let startMonth = month - (day - 14 < '865778999988'.charAt(month));
  9. return c[startMonth]+'座';
  10. },
  11. // 计算指定时间与当前的时间差
  12. sumAge(data){
  13. let dateBegin = new Date(data.replace(/-/g, "/"));
  14. let dateEnd = new Date();//获取当前时间
  15. let dateDiff = dateEnd.getTime() - dateBegin.getTime();//时间差的毫秒数
  16. let dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数
  17. let leave1=dateDiff%(24*3600*1000) //计算天数后剩余的毫秒数
  18. let hours=Math.floor(leave1/(3600*1000))//计算出小时数
  19. //计算相差分钟数
  20. let leave2=leave1%(3600*1000) //计算小时数后剩余的毫秒数
  21. let minutes=Math.floor(leave2/(60*1000))//计算相差分钟数
  22. //计算相差秒数
  23. let leave3=leave2%(60*1000) //计算分钟数后剩余的毫秒数
  24. let seconds=Math.round(leave3/1000)
  25. return dayDiff+"天 "+hours+"小时 ";
  26. },
  27. // 获取聊天时间(相差300s内的信息不会显示时间)
  28. getChatTime(v1,v2){
  29. v1=v1.toString().length<13 ? v1*1000 : v1;
  30. v2=v2.toString().length<13 ? v2*1000 : v2;
  31. if(((parseInt(v1)-parseInt(v2))/1000) > 300){
  32. return this.gettime(v1);
  33. }
  34. },
  35. // 人性化时间格式
  36. gettime(shorttime){
  37. shorttime=shorttime.toString().length<13 ? shorttime*1000 : shorttime;
  38. let now = (new Date()).getTime();
  39. let cha = (now-parseInt(shorttime))/1000;
  40. if (cha < 43200) {
  41. // 当天
  42. return this.dateFormat(new Date(shorttime),"{A} {t}:{ii}");
  43. } else if(cha < 518400){
  44. // 隔天 显示日期+时间
  45. return this.dateFormat(new Date(shorttime),"{Mon}月{DD}日 {A} {t}:{ii}");
  46. } else {
  47. // 隔年 显示完整日期+时间
  48. return this.dateFormat(new Date(shorttime),"{Y}-{MM}-{DD} {A} {t}:{ii}");
  49. }
  50. },
  51. parseNumber(num) {
  52. return num < 10 ? "0" + num : num;
  53. },
  54. dateFormat(date, formatStr) {
  55. let dateObj = {},
  56. rStr = /\{([^}]+)\}/,
  57. mons = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'];
  58. dateObj["Y"] = date.getFullYear();
  59. dateObj["M"] = date.getMonth() + 1;
  60. dateObj["MM"] = this.parseNumber(dateObj["M"]);
  61. dateObj["Mon"] = mons[dateObj['M'] - 1];
  62. dateObj["D"] = date.getDate();
  63. dateObj["DD"] = this.parseNumber(dateObj["D"]);
  64. dateObj["h"] = date.getHours();
  65. dateObj["hh"] = this.parseNumber(dateObj["h"]);
  66. dateObj["t"] = dateObj["h"] > 12 ? dateObj["h"] - 12 : dateObj["h"];
  67. dateObj["tt"] = this.parseNumber(dateObj["t"]);
  68. dateObj["A"] = dateObj["h"] > 12 ? '下午' : '上午';
  69. dateObj["i"] = date.getMinutes();
  70. dateObj["ii"] = this.parseNumber(dateObj["i"]);
  71. dateObj["s"] = date.getSeconds();
  72. dateObj["ss"] = this.parseNumber(dateObj["s"]);
  73. while(rStr.test(formatStr)) {
  74. formatStr = formatStr.replace(rStr, dateObj[RegExp.$1]);
  75. }
  76. return formatStr;
  77. },
  78. // 获取年龄
  79. getAgeByBirthday(data){
  80. let birthday=new Date(data.replace(/-/g, "\/"));
  81. let d=new Date();
  82. return d.getFullYear()-birthday.getFullYear()-((d.getMonth()<birthday.getMonth()|| d.getMonth()==birthday.getMonth() && d.getDate()<birthday.getDate())?1:0);
  83. }
  84. }

gettime使用,filters使用

过滤器使用方式

  1. import $T from '@/common/time.js'
  2. // 过滤器
  3. filters: {
  4. formatTime(value) {
  5. return $T.gettime(value)
  6. }
  7. },
  1. <text class="font-sm text-secondary">{{item.update_time | formatTime}}</text>