时间操作
howcode 2022-12-30 0 javascript
如果需要专业的时间处理,Day.js (opens new window)
# 获取当前时间
function nowTime() {
const now = new Date();
const year = now.getFullYear();
const month = now.getMonth();
const date = now.getDate() >= 10 ? now.getDate() : "0" + now.getDate();
const hour = now.getHours() >= 10 ? now.getHours() : "0" + now.getHours();
const miu =
now.getMinutes() >= 10 ? now.getMinutes() : "0" + now.getMinutes();
const sec =
now.getSeconds() >= 10 ? now.getSeconds() : "0" + now.getSeconds();
return (
+year +
"-" +
(month + 1) +
"-" +
date +
" " +
hour +
":" +
miu +
":" +
sec
);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 获取本月最后一天日期
function endTime() {
const now = new Date();
const year = now.getFullYear();
const month = now.getMonth() + 1;
const endOfMonth = new Date(year, month, 0).getDate();
return (
+year +
"-" +
month +
"-" +
endOfMonth
);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 获取两天的时间差(IE不兼容)
function dayDif(startTime, endTime) {
startTime = new Date(startTime);
endTime = new Date(endTime);
let date3 = endTime.getTime() - startTime.getTime();
let day = Math.floor(date3 / (24 * 3600 * 1000));
let leave1 = date3 % (24 * 3600 * 1000);
let hour = Math.floor(leave1 / (3600 * 1000));
let leave2 = leave1 % (3600 * 1000);
let minute = Math.floor(leave2 / (60 * 1000));
let leave3 = leave2 % (60 * 1000);
let second = Math.round(leave3 / 1000);
return {
day,
hour,
minute,
second,
};
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 获取两天的时间差(兼容IE)
function cuclDayDif(begintime, endtime) {
begintime = begintime.replace("-", "/");
begintime = begintime.replace("-", "/");
let date1 = new Date(begintime);
endtime = endtime.replace("-", "/");
endtime = endtime.replace("-", "/");
let date2 = new Date(endtime);
let sec = date2.getTime() - date1.getTime();
let second = 1000,
minute = 60 * second,
hour = 60 * minute,
day = 24 * hour;
let days = Math.floor(sec / day);
sec -= days * day;
let hours = Math.floor(sec / hour);
sec -= hours * hour;
let minutes = Math.floor(sec / minute);
sec -= minutes * minute;
let seconds = Math.floor(sec / second);
return {
day: days,
hour: hours,
minute: minutes,
second: seconds,
};
}
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
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
注意:计算2022-08-12 12:23:54
到 2022-08-25
的时间差时,25号的时间不能写成24:00:00
,要写23:59:59
# 根据传入天数获取对应日期
function GetDateStr(AddDayCount = 0) {
let dd = new Date();
dd.setDate(dd.getDate() + AddDayCount);
let y = dd.getFullYear();
let m = dd.getMonth() + 1;
let d = Number(dd.getDate()) < 10 ? `0${dd.getDate()}` : dd.getDate();
return y + "-" + m + "-" + d;
}
GetDateStr(-2); //前天
GetDateStr(-1); //昨天
GetDateStr(0); //今天
GetDateStr(1); //明天
GetDateStr(2); //后天
GetDateStr(3); //大后天
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 获取星期
function GetWeek() {
let tempDate = new Date();
let days = tempDate.getDay();
let week = "";
switch (days) {
case 1:
week = "星期一";
break;
case 2:
week = "星期二";
break;
case 3:
week = "星期三";
break;
case 4:
week = "星期四";
break;
case 5:
week = "星期五";
break;
case 6:
week = "星期六";
break;
case 0:
week = "星期日";
break;
}
return week;
}
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
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
# 格式化时间
export const dateFormater = (formater, time) => {
let date = time ? new Date(time) : new Date(),
Y = date.getFullYear() + '',
M = date.getMonth() + 1,
D = date.getDate(),
H = date.getHours(),
m = date.getMinutes(),
s = date.getSeconds();
return formater.replace(/YYYY|yyyy/g, Y)
.replace(/YY|yy/g, Y.substr(2, 2))
.replace(/MM/g,(M<10 ? '0' : '') + M)
.replace(/DD/g,(D<10 ? '0' : '') + D)
.replace(/HH|hh/g,(H<10 ? '0' : '') + H)
.replace(/mm/g,(m<10 ? '0' : '') + m)
.replace(/ss/g,(s<10 ? '0' : '') + s)
}
// dateFormater('YYYY-MM-DD HH:mm:ss')
// dateFormater('YYYYMMDDHHmmss')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 计算两个日期之间的间隔时间
export const dayDif = (date1, date2) => {
Math.ceil(Math.abs(date1.getTime() - date2.getTime()) / 86400000);
}
dayDif(new Date("2021-11-3"), new Date("2022-2-1")) // 90
1
2
3
4
2
3
4
# 检测给出的日期位于今年的第几天
export const dayOfYear = (date) => {
Math.floor((date - new Date(date.getFullYear(), 0, 0)) / 1000 / 60 / 60 / 24);
}
dayOfYear(new Date()); // 307
1
2
3
4
5
2
3
4
5
评论
- 表情
——暂无评论——