首页 > 编程语言 >直播网站源码,vue工具类,时间格式化

直播网站源码,vue工具类,时间格式化

时间:2023-03-08 14:11:47浏览次数:43  
标签:vue 格式化 format timestamp dateformat timer 源码 date tips

直播网站源码,vue工具类,时间格式化

最近做uniapp经常用到时间格式化,需要转为刚刚、几分钟前等字符串格式,自己根据需求整理了一个工具类

 

效果说明:时间转字符串格式,时间戳转字符串(如刚刚、几分钟前、几小时前)

 


timeFrom(1670894134) ==> 5分钟前
dateformat("yyyy-MM-dd hh:mm:ss.S") ==> 2023-02-09 08:09:04.423
dateformat("yyyy-M-d h:m:s.S") ==> 2023-2-9 8:9:4.18
dateformat("E") ==> 四
dateformat("EE") ==> 周四
dateformat("EEE") ==> 星期四
timeFromTool.js
export function timeFrom(timestamp = null, format = null) {
    if (!!format) {
        return timestampformat(timestamp, format);
    }
    if (timestamp == null) timestamp = Number(new Date())
    timestamp = parseInt(timestamp)
    // 毫秒(13位),秒(10位)
    if (timestamp.toString().length == 10) timestamp *= 1000
    let timer = (new Date()).getTime() - timestamp
    timer = parseInt(timer / 1000)
    // 如果小于5分钟,则返回"刚刚",其他以此类推
    let tips = ''
    switch (true) {
        case timer < 300:
            tips = '刚刚'
            break
        case timer >= 300 && timer < 3600:
            tips = `${parseInt(timer / 60)}分钟前`
            break
        case timer >= 3600 && timer < 86400:
            tips = `${parseInt(timer / 3600)}小时前`
            break
        case timer >= 86400 && timer < 2592000:
            tips = `${parseInt(timer / 86400)}天前`
            break
        case timer >= 2592000 && timer < 365 * 86400:
            tips = `${parseInt(timer / (86400 * 30))}个月前`
            break
        default:
            tips = timestampformat(timestamp, format);
    }
    return tips
}
//时间戳转时间字符串
export function timestampformat(timestamp = null, format = "yyyy-MM-dd hh:mm:ss") {
    if (timestamp == null) timestamp = Number(new Date())
    timestamp = parseInt(timestamp)
    // 判断用户输入的时间戳是秒还是毫秒,一般前端js获取的时间戳是毫秒(13位),后端传过来的为秒(10位)
    if (timestamp.toString().length == 10) timestamp *= 1000
    let date = new Date(timestamp + '+0800');
    return dateformat(format,date);
}
// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
// 星期(E)可以用 1-3 个占位符,如 
// dateformat("yyyy-MM-dd hh:mm:ss.S") ==> 2023-02-09 08:09:04.423 
// dateformat("yyyy-M-d h:m:s.S")      ==> 2023-2-9 8:9:4.18 
// dateformat("E")      ==> 四 
// dateformat("EE")      ==> 周四 
// dateformat("EEE")      ==> 星期四 
export function dateformat( format = "yyyy-MM-dd hh:mm:ss",date = new Date()) {
var o = {
        "M+": date.getMonth() + 1, //月
        "d+": date.getDate(), //天
        "H+": date.getHours(), //时(24小时制)
        "h+": date.getHours() % 12 == 0 ? date.getHours() : date.getHours() % 12, //时(12小时制)
        "m+": date.getMinutes(), //分
        "s+": date.getSeconds(), //秒
        "q+": Math.floor((date.getMonth() + 3) / 3), //季度
        "S": date.getMilliseconds() //毫秒
    }
    var week = {
        "0": "日",
        "1": "一",
        "2": "二",
        "3": "三",
        "4": "四",
        "5": "五",
        "6": "六"
    };
 
    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
    }
    if (/(E+)/.test(format)) {
        format = format.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "星期" : "周") : "") + week[
            date.getDay() + ""]);
    }
 
    for (var k in o) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
        }
    }
 
    return format;
}

 以上就是直播网站源码,vue工具类,时间格式化, 更多内容欢迎关注之后的文章

 

标签:vue,格式化,format,timestamp,dateformat,timer,源码,date,tips
From: https://www.cnblogs.com/yunbaomengnan/p/17191816.html

相关文章

  • 前端路由(vue2 + vue3 + react)
    前端路由的设置:Vue2路由(vue-router3)安装插件npmivue-router@3router/index.js文件设置importVuefrom"vue";importVueRouterfrom"vue-router";Vue.use(VueRo......
  • VUE定时器任务(每天12点执行)
    原文链接:https://blog.csdn.net/ITERCHARLIE/article/details/124447463设定配置datadata(){config:{time:'00:00:00',//每天几点执行interval:1,......
  • 智慧校园源码,智慧学校源码+小程序+人脸电子班牌
    这是一套JAVA语言开发的智慧校园源码,有演示,有文档,源码完整开源,商用级别,可以私信博主。技术开发环境:Java+springboot+vue+element-ui+mysql用的是最新的技术栈,完全满足开发......
  • vue 过滤 懒加载 使用elementUI实现树懒加载与节点过滤功能
    vue使用elementUI实现树懒加载功能以及节点过滤 1.过滤:设置filter-node-method,值为过滤函数。2.懒加载:点击节点时才进行该层数据的获取 <el-inputplaceholder......
  • Netty源码分析
    netty源码分析netty模型selector模式对普通NIO的性能提升NIO可以同时使用多个selector(使用多线程)一个selector可以同时注册多个ServerSocketServer(可以绑定多个端口)单个线......
  • Vue 删除取消时报Uncaught (in promise) cancel错误解决方法
    Vue删除取消时报Uncaught(inpromise)cancel错误,如下图:   原因:this.$confirm方法内置promise方法,所以.catch()不能省略(因为取消操作时,无法捕获),虽然不影响操作,但......
  • VUE上传文件夹的三种解决方案
    ​对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传,从上传的效率来看,利用多线程......
  • vue和原生交互
    vue调用原生的方法varu=navigator.userAgent;varisAndroid=u.indexOf("Android")>-1||u.indexOf("Adr")>-1;//android安卓varisiOS=!!u.m......
  • 组合式vue
    vue组合式风格setup所有使用到的响应式状态都应在setup函数里面定义。<script>//`setup`是一个专门用于组合式API的特殊钩子函数setup(){conststate=r......
  • 在Vue中体验LeanCloud无后台轻量级数据存储服务
    ......