js、vue、vue3.0、时间格式转换函数

2023-11-16

时间戳转换时间格式

// 时间戳转任意时间格式 调用方法=>  this.getDate(1626137166000, 'm-d H:i') this.getDate(1626137166000) 等等
getDate: function (date, format) {
        date = date || new Date()
        format = format || 'Y-m-d H:i:s'
        return this.format(format, this.beginOfDate(date).getTime() / 1000)
    },


  format: function (format, timestamp) {

        let that = this;
        let jsdate, f;
        let txt_words = [
            'Sun', 'Mon', 'Tues', 'Wednes', 'Thurs', 'Fri', 'Satur',
            'January', 'February', 'March', 'April', 'May', 'June',
            'July', 'August', 'September', 'October', 'November', 'December'
        ];

        let formatChr = /\\?(.?)/gi;
        let formatChrCb = function (t, s) {
            return f[t] ? f[t]() : s
        };
        let _pad = function (n, c) {
            n = String(n);
            while (n.length < c) {
                n = '0' + n
            }
            return n
        };
        f = {
       
            d: function () {
            
                return _pad(f.j(), 2)
            },
            D: function () {
        
                return f.l()
                    .slice(0, 3)
            },
            j: function () {
        
                return jsdate.getDate()
            },
            l: function () {
             
                return txt_words[f.w()] + 'day'
            },
            N: function () {
                return f.w() || 7
            },
            S: function () {
                let j = f.j();
                let i = j % 10;
                if (i <= 3 && parseInt((j % 100) / 10, 10) == 1) {
                    i = 0
                }
                return ['st', 'nd', 'rd'][i - 1] || 'th'
            },
            w: function () {
                return jsdate.getDay()
            },
            z: function () {
                let a = new Date(f.Y(), f.n() - 1, f.j());
                let b = new Date(f.Y(), 0, 1);
                return Math.round((a - b) / 864e5)
            },
            W: function () {
                let a = new Date(f.Y(), f.n() - 1, f.j() - f.N() + 3);
                let b = new Date(a.getFullYear(), 0, 4);
                return _pad(1 + Math.round((a - b) / 864e5 / 7), 2)
            },

            F: function () {
                return txt_words[6 + f.n()];
            },
            m: function () {
                return _pad(f.n(), 2)
            },
            M: function () {
                return f.F()
                    .slice(0, 3)
            },
            n: function () {
                return jsdate.getMonth() + 1
            },
            t: function () {
                return (new Date(f.Y(), f.n(), 0))
                    .getDate()
            },

            // 年
            L: function () {
                let j = f.Y()
                return j % 4 === 0 & j % 100 !== 0 | j % 400 === 0
            },
            o: function () {
                let n = f.n()
                let W = f.W()
                let Y = f.Y()
                return Y + (n === 12 && W < 9 ? 1 : n === 1 && W > 9 ? -1 : 0)
            },
            Y: function () {
                return jsdate.getFullYear()
            },
            y: function () {
                return f.Y()
                    .toString()
                    .slice(-2)
            },
            a: function () {
                return jsdate.getHours() > 11 ? 'pm' : 'am'
            },
            A: function () {
                return f.a()
                    .toUpperCase()
            },
            B: function () {
                let H = jsdate.getUTCHours() * 36e2
                let i = jsdate.getUTCMinutes() * 60
                let s = jsdate.getUTCSeconds()
                return _pad(Math.floor((H + i + s + 36e2) / 86.4) % 1e3, 3)
            },
            g: function () {
                return f.G() % 12 || 12
            },
            G: function () {
                return jsdate.getHours()
            },
            h: function () {
                return _pad(f.g(), 2)
            },
            H: function () {
                return _pad(f.G(), 2)
            },
            i: function () {
                return _pad(jsdate.getMinutes(), 2)
            },
            s: function () {
                return _pad(jsdate.getSeconds(), 2)
            },
            u: function () {
                return _pad(jsdate.getMilliseconds() * 1000, 6)
            },

           
            e: function () {
               
                throw 'Not supported (see source code of date() for timezone on how to add support)'
            },
            I: function () {
              
                let a = new Date(f.Y(), 0)
              
                let c = Date.UTC(f.Y(), 0)
               
                let b = new Date(f.Y(), 6)
              
                let d = Date.UTC(f.Y(), 6)
                return ((a - c) !== (b - d)) ? 1 : 0
            },
            O: function () {
               
                let tzo = jsdate.getTimezoneOffset()
                let a = Math.abs(tzo)
                return (tzo > 0 ? '-' : '+') + _pad(Math.floor(a / 60) * 100 + a % 60, 4)
            },
            P: function () {
               
                let O = f.O()
                return (O.substr(0, 3) + ':' + O.substr(3, 2))
            },
            T: function () {
               
                return 'UTC'
            },
            Z: function () {
                
                return -jsdate.getTimezoneOffset() * 60
            },

           
            c: function () {
               
                return 'Y-m-d\\TH:i:sP'.replace(formatChr, formatChrCb)
            },
            r: function () {
              
                return 'D, d M Y H:i:s O'.replace(formatChr, formatChrCb)
            },
            U: function () {
               
                return jsdate / 1000 | 0;
            }
        };
        this.date = function (format, timestamp) {
            that = this;
            jsdate = (timestamp === undefined ? new Date() : 
                    (timestamp instanceof Date) ? new Date(timestamp) : 
                        new Date(timestamp * 1000) 
            );
            return format.replace(formatChr, formatChrCb)
        };
        return this.date(format, timestamp)
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js、vue、vue3.0、时间格式转换函数 的相关文章

随机推荐

  • WorkPlus打造智慧企业移动门户,开启高效办公新时代

    在移动互联网时代 企业对于高效办公和便捷访问的需求不断增长 WorkPlus作为领先的品牌 致力于打造智慧企业移动门户 帮助企业实现高效协作与便捷访问 本文将重点介绍WorkPlus如何通过创新解决方案 为企业提供定制化的智慧移动门户 提升
  • kotlin.text.charsets

    java lang NoClassDefFoundError didn t find class kotlin text charsets Android studio项目中引入了自己下载的两个jar 3 10版本的okhttp和2 0版本
  • jQuery调用接口获取城市天气信息

    jQuery调用接口获取城市天气信息 代码如下
  • idea项目提交git报错bad revision ‘head‘

    报错 bad revision head 新建了一个文件夹 将后端项目 前端项目都放到这个文件夹里面去了 然后想提交git VCS gt import into Version control gt Create git Repositor
  • python中的pip、anaconda换国内源图文解析

    一 python中的pip换源 pip的源换成国内的源 1 首先在C Users 用户 自己的用户名目录下新建一个文件夹pip 2 之后在pip文件夹下新建一个pip txt 里边设置好国内的源 保存后改名为pip ini 文件内的内容如下
  • java中找不到符号是什么意思_JAVA小白入门很难发现的错误

    紧跟着上一篇文章 如何编写JAVA小白第一个程序 首先我们可以来做一下错误示范 这个是我们的Hello java文件 打开命令提示符 编译HelloWorld java 首先这肯定不是环境变量搞错了 可是我文件明明在目录下面 怎么就找不到文
  • Pandas50个高级高频操作

    01 复杂查询 实际业务需求往往需要按照一定的条件甚至复杂的组合条件来查询数据 接下来为大家介绍如何发挥Pandas数据筛选的无限可能 随心所欲地取用数据 1 逻辑运算 Q1成绩大于36df Q1 gt 36 Q1成绩不小于60分 并且是C
  • 构造函数&类属性和实例属性&析构函数

    1 构造函数 概念 构造函数包括 new 和 init 构造函数 也被称为构造器 指的是当创建对象的时候 被自动调用的函数 注意 在Python中 以 xxx 方式命名的函数被称为魔术函数 魔术方法 这类函数在使用的时候无需手动调用 在进行
  • 海得服务器虚拟机,海得PLC远程编程调试流程

    原标题 海得PLC远程编程调试流程 海得PLC远程编程调试流程 1 HINET智能网关LAN口默认IP地址是192 168 1 1 工业智能网关 2 假定PLC的IP地址是192 168 10 2 并且要求不能改变 海得plc 3 将HIN
  • 消息队列:Ubuntu16.04安装和Web页面管理RabbitMQ(楼主亲测、真实有效)

    RabbitMQ 总来来说 RabbitMQ的安装还是有一些难度的 不同的方式 安装的方法也是完全不一样 还要解决蛮多依赖 加上现在有些网站 极其不负责 很多博文都没有经过测试检验就直接发出来的 楼主来亲测一下 希望能对大家有好的帮助 一
  • C++ templates之“模板的模板参数”

    定义 指一个模板 它本身的参数类型就是模板 在英语原文中是 template template parameter 例如 template
  • hdu 5792 World is Exploding 2016 Multi-University 5

    Problem acm hdu edu cn showproblem php pid 5792 题意 给一个序列 V 问有多少个由下标组成的四元组 a b c d 满足 a b c d a lt b c lt d Va lt Vb Vc g
  • 在centos7安装anaconda步骤,亲测。

    在centos7上安装anaconda碰到很多的坑 分享出来 也免得以后自己忘记 第一步 首先anaconda官网下载linux安装包 网址为 https www anaconda com 或者在清华镜像下载 https mirrors t
  • konisGraph学习。复杂查询优化记录

    最近有需求是查两个公司之间的投资关系 比如 a和b之间有哪些直接投资和间接投资 例如 a gt b a gt e gt b a gt c gt d gt b b gt f gt a 需求是查出7跳以内的ab之间的投资关系 v的标签是comp
  • inline内联函数的作用和几点注意

    一 关键字inline必须与函数定义体放在一起才能使函数成为内联 仅将inline放在函数声明前面不起任何作用 二 定义在类声明之中的成员函数将自动地成为内联函数 以上可参考 http blog 163 com jinyongming bl
  • 矩阵求导 两种布局 及常用基础公式

    一 矩阵求导的两种形式 刚开始看矩阵求导这一块的时候发现一模一样的两个公式 在不同地方结果老是不一样 给我看懵了好一阵子 后来才发现原来有两种布局模式 都是可以的 矩阵求导的布局方式有两种 分子布局和分母布局 下面以 小写字母 小写粗体字母
  • stm32晶振配置不一致导致 Invalid Rom Table 至芯片锁死解决方案

    参考博文 Invalid ROM Table原因及解决办法 STM32芯片锁死问题 概述 在调试STM32时 出现如下的现象 软件写好之后首次下载程序至芯片时成功 但程序未能正常运行 之后再下载程序时便报错 Invalid ROM Tabl
  • RPC 服务优雅停机、优雅重启,你的服务重启够优雅吗?

    关注公众号 1024个为什么 及时接收最新推送文章 背景 由于最近上线比较频繁 就遇到了一个小概率的数据不一致的问题 具体过程如下 很明显 是服务没有做到优雅停机 导致的两个服务的数据不一致 优雅停机 优雅重启 本质到底是什么 优雅重启涵盖
  • 【最简单】STM32+ESP8266+MQTT+EMQX完成数据上传和点灯环节

    首先要吐槽一点 那就是网络上的这方面资料杂七杂八 而且很多都是一模一样的 然后我作为一个学生 没有多大的本事 就是想实现最基本的功能 然后在此基础上慢慢拓展 所以那些十分庞大的工程或者一些IoT物联网平台的官方SDK对于我来说是比较难看懂的
  • js、vue、vue3.0、时间格式转换函数

    时间戳转换时间格式 时间戳转任意时间格式 调用方法 gt this getDate 1626137166000 m d H i this getDate 1626137166000 等等 getDate function date form