封装一些JavaScript时间相关的方法,精确到微秒

每次网上搜太浪费时间了,一次性整理齐,其他时间段可以推导代码写法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
var now = new Date(); //当前日期
var nowDayOfWeek = now.getDay() - 1; //今天本周的第几天
var nowDay = now.getDate(); //当前日
var nowMonth = now.getMonth(); //当前月
var nowYear = now.getYear(); //当前年
nowYear += (nowYear < 2000) ? 1900 : 0;
var lastMonthDate = new Date(); //上月日期
lastMonthDate.setDate(1);
lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
var lastYear = lastMonthDate.getYear();
var lastMonth = lastMonthDate.getMonth();

//格式化时间:yyyy-MM-dd hh:mm:ss
function formatDate(date) {
var myyear = date.getFullYear();
var mymonth = date.getMonth() + 1;
var myweekday = date.getDate();
var myhours = date.getHours();
var myminutes = date.getMinutes();
var myseconds = date.getSeconds();
if (mymonth < 10) {
mymonth = "0" + mymonth;
}
if (myweekday < 10) {
myweekday = "0" + myweekday;
}
return (myyear + "-" + mymonth + "-" + myweekday + " " + myhours + ":" + myminutes + ":" + myseconds);
}


//获得某月的天数
function getMonthDays(myMonth) {
var monthStartDate = new Date(nowYear, myMonth, 1);
var monthEndDate = new Date(nowYear, myMonth + 1, 1);
var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
return days;
}

//获得本季度的开始月份
function getQuarterStartMonth() {
var quarterStartMonth = 0;
if (nowMonth < 3) {
quarterStartMonth = 0;
}
if (2 < nowMonth && nowMonth < 6) {
quarterStartMonth = 3;
}
if (5 < nowMonth && nowMonth < 9) {
quarterStartMonth = 6;
}
if (nowMonth > 8) {
quarterStartMonth = 9;
}
return quarterStartMonth;
}


//获得本周的开始时间
function getWeekStartDate() {
var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
return formatDate(weekStartDate);
}

//获得本周的结束时间
function getWeekEndDate() {
var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek), 23, 59, 59, 999);
return formatDate(weekEndDate);
}

//获得上周的开始时间
function getLastWeekStartDate() {
var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 7);
return formatDate(weekStartDate);
}

//获得上周的结束时间
function getLastWeekEndDate() {
var weekEndDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 1, 23, 59, 59, 999);
return formatDate(weekEndDate);
}

//获得本月的开始时间
function getMonthStartDate() {
var monthStartDate = new Date(nowYear, nowMonth, 1);
return formatDate(monthStartDate);
}

//获得本月的结束时间
function getMonthEndDate() {
var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth), 23, 59, 59, 999);
return formatDate(monthEndDate);
}

//获得上月开始时间
function getLastMonthStartDate() {
if (lastMonth == 11) {
var lastMonthStartDate = new Date(nowYear - 1, lastMonth, 1);
} else {
var lastMonthStartDate = new Date(nowYear, lastMonth, 1);
}
return formatDate(lastMonthStartDate);
}

//获得上月结束时间
function getLastMonthEndDate() {
if (lastMonth == 11) {
var lastMonthEndDate = new Date(nowYear - 1, lastMonth, getMonthDays(lastMonth), 23, 59, 59, 999);
} else {
var lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth), 23, 59, 59, 999);
}
return formatDate(lastMonthEndDate);
}

//获得本季度的开始时间
function getQuarterStartDate() {
var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
return formatDate(quarterStartDate);
}

//获得本季度的结束时间
function getQuarterEndDate() {
var quarterEndMonth = getQuarterStartMonth() + 2;
var quarterStartDate = new Date(nowYear, quarterEndMonth,
getMonthDays(quarterEndMonth), 23, 59, 59);
return formatDate(quarterStartDate);
}

//获得昨天的开始时间
function getYesterdayStartTime() {
var yesterdayStartDate = new Date(nowYear, nowMonth, nowDay - 1, 0, 0, 0);
return formatDate(yesterdayStartDate);
}

//获得昨天的结束时间
function getYesterdayEndTime() {
var yesterdayEndDate = new Date(nowYear, nowMonth, nowDay - 1, 23, 59, 59, 999);
return formatDate(yesterdayEndDate);
}

//获得过去7天的开始时间
function get7AgoStartTime() {
var sevenDayStartDate = new Date(nowYear, nowMonth, nowDay - 7);
return formatDate(sevenDayStartDate)
}

//获得过去7天的结束时间
function get7AgoEndTime() {
var sevenDayStartDate = new Date(nowYear, nowMonth, nowDay - 1, 23, 59, 59, 999);
return formatDate(sevenDayStartDate)
}

//获得过去30天的开始时间
function get30AgoStartTime() {
var sevenDayStartDate = new Date(nowYear, nowMonth, nowDay - 30);
return formatDate(sevenDayStartDate)
}

//获得过去7天的结束时间
function get30AgoEndTime() {
var sevenDayEndDate = new Date(nowYear, nowMonth, nowDay - 1, 23, 59, 59, 999);
return formatDate(sevenDayEndDate)
}

console.log('获得本周的开始时间:' + getWeekStartDate())
console.log('获得本周的结束时间:' + getWeekEndDate())
console.log('获得上周的开始时间:' + getLastWeekStartDate())
console.log('获得上周的结束时间:' + getLastWeekEndDate())
console.log('获得本月的开始时间:' + getMonthStartDate())
console.log('获得本月的结束时间:' + getMonthEndDate())
console.log('获得上月开始时间:' + getLastMonthStartDate())
console.log('获得上月结束时间:' + getLastMonthEndDate())
console.log('获得本季度的开始时间:' + getQuarterStartDate())
console.log('获得本季度的结束时间:' + getQuarterEndDate())
console.log('获得昨天的开始时间:' + getYesterdayStartTime())
console.log('获得昨天的结束时间:' + getYesterdayEndTime())
console.log('获得过去7天的开始时间:' + get7AgoStartTime())
console.log('获得过去7天的结束时间:' + get7AgoEndTime())
console.log('获得过去30天的开始时间:' + get30AgoStartTime())
console.log('获得过去30天的结束时间:' + get30AgoEndTime())