如何在Vue.js中对时间格式化

简介: 在Vue.js中并没有对于时间的格式化方法。比如,新建一个Vue文件,然后在页面输出当前时间。

在Vue.js中并没有对于时间的格式化方法。比如,新建一个Vue文件,然后在页面输出当前时间。


<template>
    <p>{{shijian}}</p>
</template>
<script>
export default {
    name:"shijian",
    data() {
        return {
            shijian:new Date()
        }
    },
}
</script>
<style scoped>
</style>
复制代码


结果如下,这显然不是日常所见到的日期格式。


微信截图_20220517104226.png


所以我们可以自定义时间过滤器对日期进行格式化。


<template>
    <div>
        <p>不格式化的时间:{{shijian}}</p>
        <p>格式化年月日的时间:          {{shijian|shijianfilter("yyy-mm-dd")}}</p>
        <p>格式化精确到时分秒的时间:{{shijian|shijianfilter("yyy-mm-dd hh:mm:ss")}}</p>
    </div>
</template>
<script>
export default {
    name:"shijian",
    data() {
        return {
            shijian:new Date()
        }
    },
    filters:{
        shijianfilter:function(value,args){
            var dt = new Date(value)
            var y = dt.getFullYear()
            //这里month得加1
            var m = dt.getMonth()+1
            var d = dt.getDate()
            //如果要求的时间格式只有年月日
            if(args.toLowerCase() === "yyy-mm-dd"){
                return `${y}-${m}-${d}`
            //如果时间要求精确到时分秒
            }else{
                var hh = dt.getHours()
                var mm = dt.getMinutes()
                var ss = dt.getSeconds();
                return `${y}-${m}-${d}:${hh}:${mm}:${ss}`
            }
        }
    }
}
</script>
<style scoped>
</style>
复制代码


这时输出的结果是


db5f806927df4495afa305336b8a51ce~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


注意到当时间为各位的时候只显示一位,比如9月,显示为9,与我们常见的”2019-09-12样式“不一样,在ES6中有两个函数padStart()和padEnd(),可以用来进行位数不全,语法格式为:


padStart(naxlength,arg)
复制代码


第一个参数maxlength为字符串的长度,arg为补全的字符,比如:


'1'.padStart(10, '0') // 结果为"0000000001"
复制代码


即1字符串要在开头用0来补齐,补到字符串长度为10位,而padEnd()与padStart()相反,则是在字符串结尾进行补齐,padEnd()与padStart()只能应用于字符串,所以在使用时需要先将数字或者时间转换位字符串。对月日时分秒用padStart()进行补齐:


//这里month没有加1,用来显示效果
 var m = dt.getMonth().toString().padStart(2,'0')
 var d = dt.getDate().toString().padStart(2,'0')
 var hh = dt.getHours().toString().padStart(2,'0')
 var mm = dt.getMinutes().toString().padStart(2,'0')
 var ss = dt.getSeconds().toString().padStart(2,'0')
复制代码


708a9663562d4c14bb9f7467aaba9f52~tplv-k3u1fbpfcp-zoom-in-crop-mark_1304_0_0_0.webp.jpg


以上就是如何在Vue.js中对时间格式进行格式化,主要用到了过滤器和padEnd()与padStart()方法。

目录
相关文章
|
5月前
|
JavaScript
uni-app中关于格式化时间的js文件
uni-app中关于格式化时间的js文件
85 0
|
5月前
|
前端开发 JavaScript 算法
轻松实现数字格式化:JavaScript 中的千分位分隔技巧大揭秘
轻松实现数字格式化:JavaScript 中的千分位分隔技巧大揭秘
256 0
|
11月前
|
JavaScript 前端开发
js格式化日期
js格式化日期
|
5月前
|
JSON JavaScript 前端开发
设置WebStorm像VSCode一样每行代码结尾自动格式化加入“;”分号(JavaScript、TypeScript格式化)
设置WebStorm像VSCode一样每行代码结尾自动格式化加入“;”分号(JavaScript、TypeScript格式化)
|
2天前
|
JSON JavaScript 前端开发
js如何格式化一个JSON对象?
js如何格式化一个JSON对象?
10 3
|
2月前
|
JavaScript
js金额数字格式化
本文介绍了两种实现数字格式化的方法:字符串操作与正则表达式。首先,通过递归地在每三位数字间插入逗号来格式化整数。接着,扩展该功能以支持自定义小数位数及分隔符,适用于更广泛的场景。最后,展示了如何利用正则表达式简化上述过程,实现相同的功能。
|
4月前
|
JavaScript 前端开发
Notepad++如何格式化JS代码
Notepad++如何格式化JS代码
599 1
|
3月前
|
JavaScript
js 金额格式化——显示千位分隔符
js 金额格式化——显示千位分隔符
44 0
|
3月前
|
JavaScript 前端开发
js/javascript 操作时间日期【全】含时间日期的创建、获取、比较、计算、格式化、时间戳、昨天、今天、星期汉化、计时、相关插件等
js/javascript 操作时间日期【全】含时间日期的创建、获取、比较、计算、格式化、时间戳、昨天、今天、星期汉化、计时、相关插件等
89 0
|
5月前
|
JavaScript 前端开发
JavaScript 计算时间差并格式化输出
JavaScript 计算时间差并格式化输出
58 0