uni-app中关于格式化时间的js文件

简介: uni-app中关于格式化时间的js文件


不废话,直接上代码

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);
  }
}


目录
相关文章
|
5天前
|
JavaScript
浏览器插件crx文件--JS混淆与解密
浏览器插件crx文件--JS混淆与解密
11 0
|
17天前
|
JavaScript 前端开发 容器
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
AJAX载入外部JS文件到页面并让其执行的方法(附源码)
18 0
|
1月前
uni-app 65egg.js聊天类chat.js封装(二)
uni-app 65egg.js聊天类chat.js封装(二)
25 1
|
1月前
|
JavaScript Android开发
【问题篇】打包Vue-cli3创建的vue项目成App的apk文件
【问题篇】打包Vue-cli3创建的vue项目成App的apk文件
26 0
|
19天前
|
JSON JavaScript 前端开发
设置WebStorm像VSCode一样每行代码结尾自动格式化加入“;”分号(JavaScript、TypeScript格式化)
设置WebStorm像VSCode一样每行代码结尾自动格式化加入“;”分号(JavaScript、TypeScript格式化)
|
1月前
|
iOS开发 开发者
【教程】uni-app iOS 打包解决 profile 文件与私钥证书不匹配问题
【教程】uni-app iOS 打包解决 profile 文件与私钥证书不匹配问题
|
1月前
|
开发框架 前端开发 算法
【Qt App 编译 】Qt Cmake 资源文件的加载:如何使用 CMakeLists.txt 文件和资源文件
【Qt App 编译 】Qt Cmake 资源文件的加载:如何使用 CMakeLists.txt 文件和资源文件
29 0
|
1月前
|
JSON JavaScript 前端开发
vue项目使用Print.js插件实现PDF文件打印
vue项目使用Print.js插件实现PDF文件打印
56 0
|
1月前
uni-app 68 egg.js发送消息接口开发-单聊(一)
uni-app 68 egg.js发送消息接口开发-单聊(一)
24 7
|
1月前
uni-app 66聊天类chat.js封装(三)
uni-app 66聊天类chat.js封装(三)
27 6