moment 获取本年/本季度/本月/本周/今天/上年/上季度/上月/上周/昨天 开始结束时间

发布时间 2023-12-12 17:23:32作者: yuwenjing
今天
1 const startTime = moment(moment().startOf('day').valueOf()).format('YYYY/MM/DD HH:mm:ss');
2 const endTime = moment(moment().valueOf()).format('YYYY/MM/DD HH:mm:ss');
昨天
1 const startTime = moment(moment().add(-1, 'days').startOf('day').valueOf()).format('YYYY/MM/DD HH:mm:ss');
2 const endTime = moment(moment().add(-1, 'days').endOf('day').valueOf()).format('YYYY/MM/DD HH:mm:ss');
本周
1 const startTime = moment(moment().week(moment().week()).startOf('week').valueOf()).format('YYYY/MM/DD HH:mm:ss');
2 const endTime = moment(moment().week(moment().week()).endOf('week').valueOf()).format('YYYY/MM/DD HH:mm:ss');
上周
1 const startTime = moment(moment().week(moment().week() - 1).startOf('week').valueOf()).format('YYYY/MM/DD HH:mm:ss');
2 const endTime = moment(moment().week(moment().week() - 1).endOf('week').valueOf()).format('YYYY/MM/DD HH:mm:ss');
本月
1 const startTime = moment(moment().month(moment().month()).startOf('month').valueOf()).format('YYYY/MM/DD HH:mm:ss');
2 const endTime = moment(moment().month(moment().month()).endOf('month').valueOf()).format('YYYY/MM/DD HH:mm:ss');
上月
1 const startTime = moment(moment().month(moment().month() - 1).startOf('month').valueOf()).format('YYYY/MM/DD HH:mm:ss');
2 const endTime = moment(moment().month(moment().month() - 1).endOf('month').valueOf()).format('YYYY/MM/DD HH:mm:ss');
本季度
1 const startTime = moment(moment().quarter(moment().quarter()).startOf('quarter').valueOf()).format('YYYY/MM/DD HH:mm:ss');
2 const endTime = moment(moment().quarter(moment().quarter()).endOf('quarter').valueOf()).format('YYYY/MM/DD HH:mm:ss');
上季度
1 const startTime = moment(moment().quarter(moment().quarter() - 1).startOf('quarter').valueOf()).format('YYYY/MM/DD HH:mm:ss');
2 const endTime = moment(moment().quarter(moment().quarter() - 1).endOf('quarter').valueOf()).format('YYYY/MM/DD HH:mm:ss');
本年
1 const startTime = moment(moment().year(moment().year()).startOf('year').valueOf()).format('YYYY/MM/DD HH:mm:ss');
2 const endTime = moment(moment().year(moment().year()).endOf('year').valueOf()).format('YYYY/MM/DD HH:mm:ss');
上年
1 const startTime = moment(moment().year(moment().year() - 1).startOf('year').valueOf()).format('YYYY/MM/DD HH:mm:ss');
2 const endTime = moment(moment().year(moment().year() - 1).endOf('year').valueOf()).format('YYYY/MM/DD HH:mm:ss');

上面的例子中今天、本周、本月、本年的结束时间都是取到最后的23:59:59。
如果不需要取到未来时间,结束时间统一用下面这行获取系统当前时间:

1 const endTime = moment(moment().valueOf()).format('YYYY/MM/DD HH:mm:ss');
快捷时间封装库

shortcut-time.js

  1 // 引入 moment 时间插件
  2 import moment from 'moment';
  3 
  4 //获取今日/昨日/本周/上周/本月/上月 时间
  5 export default {
  6     // 获取今日的开始结束时间
  7     getToday() {
  8         let obj = {
  9             starttime: '',
 10             endtime: ''
 11         };
 12         obj.starttime = moment(
 13             moment()
 14                 .startOf('day')
 15                 .valueOf()
 16         ).format('YYYY/MM/DD HH:mm:ss');
 17         obj.endtime = moment(moment().valueOf()).format('YYYY/MM/DD HH:mm:ss');
 18         return obj;
 19     },
 20     // 获取昨日的开始结束时间
 21     getYesterday() {
 22         let obj = {
 23             starttime: '',
 24             endtime: ''
 25         };
 26         obj.starttime = moment(
 27             moment()
 28                 .add(-1, 'days')
 29                 .startOf('day')
 30                 .valueOf()
 31         ).format('YYYY/MM/DD HH:mm:ss');
 32         obj.endtime = moment(
 33             moment()
 34                 .add(-1, 'days')
 35                 .endOf('day')
 36                 .valueOf()
 37         ).format('YYYY/MM/DD HH:mm:ss');
 38         return obj;
 39     },
 40     // 获取当前周的开始结束时间
 41     getCurrWeekDays() {
 42         let obj = {
 43             starttime: '',
 44             endtime: ''
 45         };
 46         obj.starttime = moment(
 47             moment()
 48                 .week(moment().week())
 49                 .startOf('week')
 50                 //.add(1, 'days')
 51                 .valueOf()
 52         ).format('YYYY/MM/DD HH:mm:ss');
 53         obj.endtime = moment(moment().valueOf()).format('YYYY/MM/DD HH:mm:ss');
 54         return obj;
 55     },
 56     // 获取上一周的开始结束时间
 57     getLastWeekDays() {
 58         let obj = {
 59             starttime: '',
 60             endtime: ''
 61         };
 62         obj.starttime = moment(
 63             moment()
 64                 .week(moment().week() - 1)
 65                 .startOf('week')
 66                 //.add(1, 'days')
 67                 .valueOf()
 68         ).format('YYYY/MM/DD HH:mm:ss');
 69         obj.endtime = moment(
 70             moment()
 71                 .week(moment().week() - 1)
 72                 .endOf('week')
 73                 //.add(1, 'days')
 74                 .valueOf()
 75         ).format('YYYY/MM/DD HH:mm:ss');
 76         return obj;
 77     },
 78     // 获取当前月的开始结束时间
 79     getCurrMonthDays() {
 80         let obj = {
 81             starttime: '',
 82             endtime: ''
 83         };
 84         obj.starttime = moment(
 85             moment()
 86                 .month(moment().month())
 87                 .startOf('month')
 88                 .valueOf()
 89         ).format('YYYY/MM/DD HH:mm:ss');
 90         obj.endtime = moment(moment().valueOf()).format('YYYY/MM/DD HH:mm:ss');
 91         return obj;
 92     },
 93     // 获取上一个月的开始结束时间
 94     getLastMonthDays() {
 95         let obj = {
 96             starttime: '',
 97             endtime: ''
 98         };
 99         obj.starttime = moment(
100             moment()
101                 .month(moment().month() - 1)
102                 .startOf('month')
103                 .valueOf()
104         ).format('YYYY/MM/DD HH:mm:ss');
105         obj.endtime = moment(
106             moment()
107                 .month(moment().month() - 1)
108                 .endOf('month')
109                 .valueOf()
110         ).format('YYYY/MM/DD HH:mm:ss');
111         return obj;
112     },
113     // 获取本季度的开始结束时间
114     getCurrQuarterDays() {
115         let obj = {
116             starttime: '',
117             endtime: ''
118         };
119         obj.starttime = moment(
120             moment()
121                 .quarter(moment().quarter())
122                 .startOf('quarter')
123                 .valueOf()
124         ).format('YYYY/MM/DD HH:mm:ss');
125         obj.endtime = moment(moment().valueOf()).format('YYYY/MM/DD HH:mm:ss');
126         return obj;
127     },
128     // 获取上一季度的开始结束时间
129     getLastQuarterDays() {
130         let obj = {
131             starttime: '',
132             endtime: ''
133         };
134         obj.starttime = moment(
135             moment()
136                 .quarter(moment().quarter() - 1)
137                 .startOf('quarter')
138                 .valueOf()
139         ).format('YYYY/MM/DD HH:mm:ss');
140         obj.endtime = moment(
141             moment()
142                 .quarter(moment().quarter() - 1)
143                 .endOf('quarter')
144                 .valueOf()
145         ).format('YYYY/MM/DD HH:mm:ss');
146         return obj;
147     },
148     // 获取本年的开始结束时间
149     getCurrYearDays() {
150         let obj = {
151             starttime: '',
152             endtime: ''
153         };
154         obj.starttime = moment(
155             moment()
156                 .year(moment().year())
157                 .startOf('year')
158                 .valueOf()
159         ).format('YYYY/MM/DD HH:mm:ss');
160         obj.endtime = moment(moment().valueOf()).format('YYYY/MM/DD HH:mm:ss');
161         return obj;
162     },
163 
164     // 获取上一年的开始结束时间
165     getLastYearDays() {
166         let obj = {
167             starttime: '',
168             endtime: ''
169         };
170         obj.starttime = moment(
171             moment()
172                 .year(moment().year() - 1)
173                 .startOf('year')
174                 .valueOf()
175         ).format('YYYY/MM/DD HH:mm:ss');
176         obj.endtime = moment(
177             moment()
178                 .year(moment().year() - 1)
179                 .endOf('year')
180                 .valueOf()
181         ).format('YYYY/MM/DD HH:mm:ss');
182         return obj;
183     }
184 };