moment.js插件常用api备忘
moment.js插件功能远不不仅仅是在格式化日期上,还是有很多很好用奇淫技巧,使用起来也是更加方便,主要在vue项目中使用偏多,,但是有时候也不是总使用,将一些项目中可能会用,可以节省代码的api在此记录备忘一下
文章目录
- moment.js插件常用api备忘
- 1、引入
- 1.1 安装
- 1.2 基本使用
- 1.3 说明
- 1.3.1 【 大小写】
- 2、场景使用api
- 2.1 近七日、近6个月场景
- 2.2 其他api罗列示例
- 2.2.1 根据时间戳格式化时间:
- 2.2.2 格式化日期为数组格式:
- 2.2.3 获取年月日时分秒单个值:
1、引入
官网地址:Moment.js
1.1 安装
npm install moment --save
使用的组件文件中导入
import moment from 'moment'
格式化使用的默认语言格式使用中文
就在导入插件的位置再导入一行:moment.locale(‘zh-cn’)即可
import moment from 'moment'
moment.locale('zh-cn')
或者
import moment from 'moment'
moment.lang('zh-cn'
1.2 基本使用
当前日期格式化
moment().format('YYYY-MM-DD HH:mm:ss')
输出:
2024-07-30 13:30:16
1.3 说明
日期格式化中,字母代表
- y : (year)年
- m:(month)月
- d :(day)日
- h :(hour)时
- m:(minute)分
- s : (second)秒
1.3.1 【 大小写】
大写是位数确定,不够的使用0来进行补位,以年示例:
console.log('时间格式化:', moment('1970').format('YY'))
时间格式化: 70
console.log('时间格式化:', moment('1').format('YY'))
时间格式化: 01
其中一个"Y"表示自然生长,首位不为零,但是超过9999时,会多一个+号,主要是符合ios标准,即:
1970 1971 … 9999 +10001 10001
所以大写的位数可以很多种:Y , YY , YYYY , YYYYYY
常用格式:YYYY
小写只有一种写法:‘y’,用法基本与Y相同,只有超过9999的时候,y是正常显示,没有+号
console.log('时间格式化:', moment('10001').format('y'))
时间格式化: 10001
常用格式罗列说明:
【第一种】
moment().format('YYYY年MM月DD日 HH:mm:ss')
时间格式化: 2024年07月30日 13:57:39
【第二种】
moment().format('YYYY-MM-DD HH:mm:ss')
时间格式化: 2024-07-30 13:57:57
【第三种】
moment().format('YYYY/MM/DD HH:mm:ss')
时间格式化: 2024/07/30 13:58:26
项目中主要使用elementUI的时间日期选择插件,所以第二种的方式用的比较多
2、场景使用api
按照业务需求角度来记录api
2.1 近七日、近6个月场景
【业务描述】:页面场景中一些列表查询、图表展示需要一些时间快捷选项,比如,近七日、近六个月、近三年等等,
【实现分析】:这个接口传参时间上肯定分两部分,开始时间、结束时间。
结束时间:当前时间,
开始时间: 当前时间 - 7*24小时
【moment插件快捷语法】:
关键词:subtract(减)
七天前的时间:
moment().subtract(7, 'days').format('YYYY-MM-DD HH:mm:ss')
时间格式化: 2024-07-23 14:17:37(当前7-30)
================
同样,加的方法:add
moment().add(7, 'days').format('YYYY-MM-DD HH:mm:ss')
时间格式化: 2024-08-06 14:23:02
【语法说明】
invalid.subtract(value, unit),
第一个参数是数值
第二个参数是单位:全称:简写
years y
months M
weeks w
days d
hours h
minutes m
seconds s
milliseconds ms
也可以多个参数,使用对象的方式:
moment().subtract({hours: 23, minutes: 59, seconds: 59})
当前时间减去23小时59分59秒,
add语法同理
2.2 其他api罗列示例
2.2.1 根据时间戳格式化时间:
moment(1318781876406).format('YYYY-MM-DD HH:mm:ss')
时间格式化: 2011-10-17 00:17:56
2.2.2 格式化日期为数组格式:
moment([2010, 1, 14, 15, 25, 50]).format('YYYY-MM-DD HH:mm:ss')
时间格式化: 2010-02-14 15:25:50
2.2.3 获取年月日时分秒单个值:
moment().year()
moment().month()
moment().date()//日
moment().hour()
moment().minute()
moment().second()
moment().day()//星期几
moment().dayOfYear()//目前一年中的地多少天
moment().quarter()//现在过了几刻钟
相对应(年月日时分秒)的get方法:
moment().get('year');
moment().get('month'); // 0 to 11
moment().get('date');
moment().get('hour');
moment().get('minute');
moment().get('second');