js时间(Date)处理

正文

Date转字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function getDateStr() {
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
let hour = date.getHours();
let minute = date.getMinutes();
let sec = date.getSeconds();
month = month < 10 ? "0" + month : month;
day = day < 10 ? "0" + day : day;
hour = hour < 10 ? "0" + hour : hour;
minute = minute < 10 ? "0" + minute : minute;
sec = sec < 10 ? "0" + sec : sec;
return year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + sec;
}
console.info(getDateStr());

通用日期格式化

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
export function dateFormat(date, format = "yyyy-MM-dd hh:mm:ss") {
if (date !== "Invalid Date") {
var o = {
"M+": date.getMonth() + 1, // month
"d+": date.getDate(), // day
"h+": date.getHours(), // hour
"m+": date.getMinutes(), // minute
"s+": date.getSeconds(), // second
"q+": Math.floor((date.getMonth() + 3) / 3), // quarter
S: date.getMilliseconds() // millisecond
};
if (/(y+)/.test(format)) {
format = format.replace(
RegExp.$1,
(date.getFullYear() + "").substr(4 - RegExp.$1.length)
);
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(
RegExp.$1,
RegExp.$1.length === 1
? o[k]
: ("00" + o[k]).substr(("" + o[k]).length)
);
}
}
return format;
}
return "";
}

时间戳转Date

1
2
3
let timeUinx = 1629861058;
let date = new Date(timeUinx * 1000);
console.info(date.toLocaleString());

结果如下

2021-8-25 11:10:58 AM

Date转时间戳

1
2
3
4
5
6
7
let date = new Date();
let timeUnix1 = date.getTime();
let timeUnix2 = date.valueOf();
let timeUnix3 = Date.parse(date);
console.info(timeUnix1);
console.info(timeUnix2);
console.info(timeUnix3);

结果如下

1629863671426
1629863671426
1629863671000

这三种都是13位的,但是前两种精确到毫秒,最后一个精确到秒

获取10位的时间戳

1
2
3
4
5
6
7
let date = new Date();
let timeUnix1 = parseInt(date.getTime() / 1000 + "");
let timeUnix2 = parseInt(date.valueOf() / 1000 + "");
let timeUnix3 = parseInt(Date.parse(date) / 1000 + "");
console.info(timeUnix1);
console.info(timeUnix2);
console.info(timeUnix3);