在 JavaScript 中使用 moment 来操作日期时间

2021-09-24 16:59:39
在写项目时,我们经常需要获取和操作时间, moment 提供了很多好用方法 ## 安装 moment ``` $ npm install moment --save ``` ## 引入 ``` import moment from 'moment' ``` ## 使用 moment 获取当前时间 ``` //获取 当前时间 moment().format('YYYY-MM-DD HH:mm:ss'); //2020-08-25 10:23:59 //获取年份 moment().year(); //2020 moment().get('year'); //2020 //获取月份(0:一月份 11: 12月份 ) moment().month(); //7 moment().get('month'); //7 //获取一个月的某一天 moment().date(); //25 moment().get('date'); //25 //获取小时 moment().hours(); //11 moment().get('hours'); //11 //获取分钟 moment().minutes(); //11 moment().get('minutes'); //11 //获取秒数 moment().seconds(); //17 moment().get('seconds'); //17 //获取 今天星期几 moment().format('dddd'); //Tuesday moment().format('d'); //2 moment().day(); //2(0~6 分别代表周日到周六) moment().weekday(); //2(0~6 分别代表周日到周六) moment().isoWeekday(); //2(1~7 分别代表周一到周日) moment().get('date'); //2 moment().get('weekday'); //2 moment().get('isoWeekday'); //2 ``` 设置时间 ``` //设置年份 moment().year(2019); moment().set('year', 2019); moment().set({year: 2019}); //设置月份 //0~11, 0: 1月份, 11: 12月份 moment().month(8); moment().set('month', 8); //设置 某个月中的某一天 某个周中的某一天 小时 分钟 秒数 同上,这里就不写了 ``` 格式化指定时间 ``` //格式化指定时间 moment(time).format('YYYY-MM-DD'); ``` 时间差 ``` now_time.diff(start_time,"hour"); //小时数 now_time.diff(start_time,"minute"); //分钟数 now_time.diff(start_time,"second"); //现在和初始时间相差的秒数 now_time.diff(start_time, 'months'); //月数 now_time.diff(start_time, 'weeks'); //周数 now_time.diff(start_time, 'days'); //天数 ``` 相对时间 ``` //add 加时间 //subtract 减时间 moment().subtract(10, 'days').format('YYYY-MM-DD HH:mm:ss'); //2020-08-15 10:51:48 moment().subtract(6, 'days').format('YYYY-MM-DD HH:mm:ss'); //2020-08-19 10:51:48 moment().subtract(3, 'days').format('YYYY-MM-DD HH:mm:ss'); //2020-08-22 10:51:48 moment().subtract(1, 'days').format('YYYY-MM-DD HH:mm:ss'); //前一天:2020-08-24 10:51:48 moment().format('YYYY-MM-DD HH:mm:ss'); //当前时间:2020-08-25 10:51:48 moment().add(1, 'days').format('YYYY-MM-DD HH:mm:ss'); //后一天:2020-08-26 10:51:48 moment().add(3, 'days').format('YYYY-MM-DD HH:mm:ss'); //2020-08-28 10:51:48 moment().add(10, 'days').format('YYYY-MM-DD HH:mm:ss'); //2020-09-04 10:51:48 moment().subtract(1, 'year').format('YYYY-MM-DD HH:mm:ss'); //前一年: moment().add(1, 'year').format('YYYY-MM-DD HH:mm:ss'); //后一年: moment().subtract(1, 'hours').format('YYYY-MM-DD HH:mm:ss'); //前一小时: moment().add(1, 'hours').format('YYYY-MM-DD HH:mm:ss'); //后一小时: // startOf 设置为起始时间 moment("20111031", "YYYYMMDD").fromNow(); //9 years ago moment().startOf('day').fromNow(); //11 hours ago moment().startOf('hour').fromNow(); //an hour ago moment().endOf('day').fromNow(); //in 13 hours moment().endOf('hour').fromNow(); //in 15 minutes //年初 moment().startOf('year').format('YYYY-MM-DD HH:mm:ss'); //2020-01-01 00:00:00 //月初 moment().startOf('month').format('YYYY-MM-DD HH:mm:ss'); //2020-08-01 00:00:00 //日初 moment().startOf('day').format('YYYY-MM-DD HH:mm:ss'); //2020-08-25 00:00:00 //周初 本周第一天(周日) moment().startOf('week').format('YYYY-MM-DD HH:mm:ss'); //2020-08-23 00:00:00 //本周周一初 moment().startOf('isoWeek').format('YYYY-MM-DD HH:mm:ss'); //2020-08-24 00:00:00 ```