vue之moment的基本概念及使用方式

135 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第一天,点击查看活动详情

momentJS概念: momentJS 是一个 JavaScript 日期处理类库,它有助于以非常简单的方式在JavaScript中解析,验证,操作和显示日期/时间.本文将介绍一下momentJS的基本概述和一些基础用法。

Moment JS允许按照本地化和人类可读的格式显示日期.您可以使用脚本方法在浏览器中使用MomentJS.它也可以与Node.js一起使用,并且可以使用npm进行安装.

在MomentJS中,您可以找到许多易于使用的方法来添加,减去,验证日期,获得最大值,最小值这是一个开源项目,您可以轻松地为库做贡献并以插件的形式添加功能,并使其在GitHub和Node.js中可用.

功能: MomentJS提供以不同方式显示日期的格式.有一些方法可以告诉从给定时刻开始的时间,当前时刻,两个时刻之间的差异等.它可以用JSON格式,数组,对象,字符串等显示日期. 日期格式化: // let date = this.$moment().format() // let today = this.$moment().format('MMMM Do YYYY, h:mm:ss a') // let week = this.$moment().format('dddd') // let day = this.$moment().format('YYYY-MM-DD') // let da = this.$moment().get('weekday')

设置日期时间:(subtract(),add()) 通过这两个参数可以设置未来和过去的某个特定时间点,如果要同时增加或减少多个不同的键,则可以将它们作为对象字面量传入。 let year = this.$moment().subtract(1, 'years').format('YYYY-MM-DD') let years = this.$moment().subtract(-1, 'years').format('YYYY-MM-DD') let month = this.$moment().subtract(1, 'months').format('MM-DD') let days = this.$moment().subtract(1, 'd').format('YYYY-MM-DD HH:mm:ss') let seven = this.$moment().add(7, 'd').format('MM-DD') let more = this.$moment().add(7, 'd').add(1, 'M').format('MM-DD') let mores = this.$moment().add({ days: 7, months: 1 }).format('MM-DD') //数量没有上限,因此可以重载任何参数。 moment().add(1000000, 'milliseconds'); // 一百万毫秒 moment().add(360, 'days'); // 360 天

相对时间fromNow() let tenyear = this.$moment('19990823', 'YYYYMMDD').fromNow() let nine = this.$moment().startOf('day').fromNow() let within = this.$moment().endOf('day').fromNow() let hou = this.$moment().startOf('hour').fromNow() 如果传入 true,则可以获得不带后缀的值。 moment([2007, 0, 29]).fromNow(); // 4 年前 moment([2007, 0, 29]).fromNow(true); // 4 年

日历时间calendar() 日历时间会显示相对于给定(现在时间)的时间,但与fromNow略有不同 它会以日期与现在时间的接近程度,使用不同的字符串格式化日期 let ti = this.$moment().calendar() let ten = this.$moment().subtract(10, 'days').calendar() let tens = this.$moment().subtract(1, 'days').calendar() let five = this.$moment().add(5, 'days').calendar() let fives = this.$moment().add(7, 'days').calendar() 有一点,当moment与现在时间相距超过一周时间,则将sameElse作为格式

startOf()与endOf()
通过将原始的moment设置为时间单位的开头或者末尾来对其进行更改 let time = this.$moment().startOf('day').format('YYYY-MM-DD HH:mm:ss') let weeks = this.$moment().startOf('week').format('YYYY-MM-DDHH:mm:ss') let endtime = this.$moment().endOf('day').format('YYYY-MM-DD HH:mm:ss') let endweeks = this.$moment().endOf('months').format('YYYY-MM-DD HH:mm:ss')

dayInMonth() 计算当月的总天数 let to = this.$moment().daysInMonth() let twotime = this.$moment('2022-02', 'YYYY-MM').daysInMonth()

unix() 输出 Unix 时间戳(自 Unix 纪元以来的秒数) valueOf() 输出 Unix 时间戳 (自Unix纪元以来的毫秒数) let second = this.$moment().unix() let seconds = this.$moment().format('x').valueOf()

转换时间格式 duration(), 创建时长 以毫秒为单位 如果要使用毫秒以外的其他度量单位来创建 moment,则也可以传入度量单位 let x = 3600 let x1 = 900100 let x2 = 87654321 let m = 800 var d = this.$moment.duration(x, 'seconds') var d1 = this.$moment.duration(x1, 'seconds') var d2 = this.$moment.duration(x2, 'seconds') var d3 = this.$moment.duration(m, 'minutes')