moment.js 接近300k,体积太大,已停止开发,建议使用 api 类似的 Day.js 代替,压缩版的 Day.js 只有 2kb。
以下笔记针对 v2.10.6 版本
一、安装
npm install moment —save
二、Moment 汉化
1. 全局汉化
moment.locale('zh-cn')
2. 局部汉化
moment().locale(‘zh-cn’).format(‘h:mm:ss a’) //5:00:22 下午
(需要先对 Moment 对象进行汉化再使用)
三、日期时间
1. moment() //返回当前时间的 Moment 对象
2. moment().format(‘YYYY-MM-DD hh:mm:ss a’) //对日期按照自定义格式进行转换
在汉化情况下:
YY - 18
YYYY - 2018
M - 4
MM - 04
MMM - 4月
MMMM - 四月
D - 8
DD - 08
Do - 8日
d - 0
dd - 日
ddd - 周日
dddd - 星期日
HH - 小时(以24时算)
hh - 小时(以12时算)
mm - 分钟
ss - 秒
a - 上/下午
3. moment(‘1995-12-25’) //把一个时间转换成 Moment 对象
moment(‘1995/12/25’) //用上面短横线连接的方法跟正规
moment(‘1995-12-25’, ‘YYYY-MM-DD’, ‘zh-cn’)
moment(1523169556396) //毫秒数作为参数
moment(Date)
4. 长日期格式(显示的格式可以在 moment.locale() 自定义)
moment.locale('zh-cn');
moment().format('L') // 2018/04/08
moment().format(‘l') // 2018/4/8
moment().format('LL') // 2018年4月8日
moment().format('LLL') // 2018年4月8日上午11点14分
moment().format('lll') // 2018年4月8日 11:14
moment().format(‘LLLL') // 2018年4月8日星期日上午11点14分
moment().format(‘llll') // 2018年4月8日星期日 11:14
5. moment().startOf(‘day’) // 当天的0点
moment().endOf(‘day’) // 当天24点
四、日期时间操作
1. 减
moment().subtract(2, ‘years’) //减2年
可选单位有:years, months, days, hours, minutes, seconds
2. 加
moment().add(2, ‘years’) //加2年
moment().add({
years: 2,
months: 2
})
3. 获取和更改 “年月日 时分秒”
moment().year() //获取年,也可以用 moment().get(‘year’)
moment().year(2000) //设置年,也可以用 moment().set(‘year’, 1995)
year, month, date, day, hour, minute, second, millisecond
注意:1. 获取的 month 要 +1,取值范围是 0~11。
2. day 获取的是星期,星期日是0,设置的时候支持负数。
4. 克隆
moment(Moment) 或者 a.clone() //a 是 Moment 对象
5. Moment 对象转 Date 对象
moment().toDate()
五、日历时间
1. moment().substract(10, ‘days’).calendar(); // 2018/08/13
2. (当前时间是:2018/8/23 22:35:00)
moment().subtract(2, ‘days').calendar()
moment().calendar(); // 今天22:35
moment().add(1, ‘days’).calendar(); // 明天22:35
moment().add(10, ‘days’).calendar(); // 2018/09/02
六、日期时间对比
1. 日期时间比大小
Moment1.diff(Moment2) //返回 Moment1 相对于 Moment2 的毫秒数
//返回正数说明 Moment1 比 Moment2 大
//返回负数说明 Moment1 比 Moment2 小
2. 是否之前
moment().isBefore(Moment | String | Number | Date | Array [, String])
eg: moment(‘2010-12-25’).isBefore(‘2010-10-12’, ‘year’) //false
3. 是否相同
moment().isSame(Moment | String | Number | Date | Array [, String])
4. 是否之后
moment().isAfter(Moment | String | Number | Date | Array [, String])
5. 是否之间
moment().isBetween(moment-like, moment-like [, String])
eg: moment(‘2011-12-25’).isBetween(‘2010-10-12’, ‘2012-12-25’, ‘year’) //true
七、相对时间
1. moment(‘20111031’, ‘YYYYMMDD’).fromNow(); // 7年前