export default{// 计算当前日期星座getHoroscope(date) {let c = ['摩羯','水瓶','双鱼','白羊','金牛','双子','巨蟹','狮子','处女','天秤','天蝎','射手','摩羯']date=new Date(date);let month = date.getMonth() + 1;let day = date.getDate();let startMonth = month - (day - 14 < '865778999988'.charAt(month));return c[startMonth]+'座';},// 计算指定时间与当前的时间差sumAge(data){let dateBegin = new Date(data.replace(/-/g, "/"));let dateEnd = new Date();//获取当前时间let dateDiff = dateEnd.getTime() - dateBegin.getTime();//时间差的毫秒数let dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数let leave1=dateDiff%(24*3600*1000) //计算天数后剩余的毫秒数let hours=Math.floor(leave1/(3600*1000))//计算出小时数//计算相差分钟数let leave2=leave1%(3600*1000) //计算小时数后剩余的毫秒数let minutes=Math.floor(leave2/(60*1000))//计算相差分钟数//计算相差秒数let leave3=leave2%(60*1000) //计算分钟数后剩余的毫秒数let seconds=Math.round(leave3/1000)return dayDiff+"天 "+hours+"小时 ";},// 获取聊天时间(相差300s内的信息不会显示时间)getChatTime(v1,v2){v1=v1.toString().length<13 ? v1*1000 : v1;v2=v2.toString().length<13 ? v2*1000 : v2;if(((parseInt(v1)-parseInt(v2))/1000) > 300){return this.gettime(v1);}},// 人性化时间格式gettime(shorttime){shorttime=shorttime.toString().length<13 ? shorttime*1000 : shorttime;let now = (new Date()).getTime();let cha = (now-parseInt(shorttime))/1000;if (cha < 43200) {// 当天return this.dateFormat(new Date(shorttime),"{A} {t}:{ii}");} else if(cha < 518400){// 隔天 显示日期+时间return this.dateFormat(new Date(shorttime),"{Mon}月{DD}日 {A} {t}:{ii}");} else {// 隔年 显示完整日期+时间return this.dateFormat(new Date(shorttime),"{Y}-{MM}-{DD} {A} {t}:{ii}");}},parseNumber(num) {return num < 10 ? "0" + num : num;},dateFormat(date, formatStr) {let dateObj = {},rStr = /\{([^}]+)\}/,mons = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'];dateObj["Y"] = date.getFullYear();dateObj["M"] = date.getMonth() + 1;dateObj["MM"] = this.parseNumber(dateObj["M"]);dateObj["Mon"] = mons[dateObj['M'] - 1];dateObj["D"] = date.getDate();dateObj["DD"] = this.parseNumber(dateObj["D"]);dateObj["h"] = date.getHours();dateObj["hh"] = this.parseNumber(dateObj["h"]);dateObj["t"] = dateObj["h"] > 12 ? dateObj["h"] - 12 : dateObj["h"];dateObj["tt"] = this.parseNumber(dateObj["t"]);dateObj["A"] = dateObj["h"] > 12 ? '下午' : '上午';dateObj["i"] = date.getMinutes();dateObj["ii"] = this.parseNumber(dateObj["i"]);dateObj["s"] = date.getSeconds();dateObj["ss"] = this.parseNumber(dateObj["s"]);while(rStr.test(formatStr)) {formatStr = formatStr.replace(rStr, dateObj[RegExp.$1]);}return formatStr;},// 获取年龄getAgeByBirthday(data){let birthday=new Date(data.replace(/-/g, "\/"));let d=new Date();return d.getFullYear()-birthday.getFullYear()-((d.getMonth()<birthday.getMonth()|| d.getMonth()==birthday.getMonth() && d.getDate()<birthday.getDate())?1:0);}}
gettime使用,filters使用
过滤器使用方式
import $T from '@/common/time.js'// 过滤器filters: {formatTime(value) {return $T.gettime(value)}},
<text class="font-sm text-secondary">{{item.update_time | formatTime}}</text>
