Js中Date对象

基础

1
2
3
4
5
6
7
// Sun Oct 18 2020 10:46:54 GMT+0800 (中国标准时间)
new Date();
new Date(value); // new Date(1602989155183)
new Date(dateString);// new Date("2020-10-18 10:15:30")
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);// new Date(2020, 9, 18, 10, 15, 30)
console.log(typeof(Date())); // string
console.log(typeof(new Date())); // object

Date.now()

返回自19701100:00:00 (UTC)到当前时间的毫秒数。

dateObj.getFullYear()

根据本地时间返回指定日期的年份。

dateObj.getMonth()

根据本地时间,返回一个指定的日期对象的月份,为基于0的值,0表示一年中的第一月

dateObj.getDate()

根据本地时间,返回一个指定的日期对象为一个月中的哪一日,范围为从1-31

dateObj.getDay()

根据本地时间,返回一个具体日期中一周的第几天,0表示星期天。

dateObj.getHours()

根据本地时间,返回一个指定的日期对象的小时。

dateObj.getMinutes()

根据本地时间,返回一个指定的日期对象的分钟数。

dateObj.getSeconds()

根据本地时间,返回一个指定的日期对象的秒数。

dateObj.toLocaleString([locales [, options]])

返回该日期对象的字符串,该字符串格式因不同语言而不同。

新增的参数localesoptions使程序能够指定使用哪种语言格式化规则,允许定制该方法的表现behavior

在旧版本浏览器中,localesoptions参数被忽略,使用的语言环境和返回的字符串格式是各自独立实现的。

每隔1s显示当前时间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const formateCurrentDate= ()=> {
let date = new Date();
return date.getFullYear() + '-'
+ (date.getMonth() + 1) + '-'
+ date.getDate() + ' '
+ date.getHours() + ':'
+ date.getMinutes() + ':'
+ date.getSeconds();
}
setInterval(() => {
// document.querySelectorAll('span')[0].textContent=formateCurrentDate();
document.querySelectorAll('span')[0].textContent=new Date().toLocaleString();
}, 1000)

// react
useEffect(()=>{
let timer = setInterval(()=>{
setTime(formateCurrentDate())
},1000)
return ()=>{
clearInterval(timer)
}
},[])

日期格式化

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
/**
* @description: 日期格式化函数
* @param date 日期类型
* @param format 日期格式 默认 yyyy-MM-dd HH:mm:ss格式
*/
function formatDate(date, format = 'yyyy-MM-dd HH:mm:ss 星期w') {
if (!date) {
return date;
}
const typeDate = date instanceof Date ? date.getTime() : date;
date = new Date(typeDate);
const obj = {
yyyy: date.getFullYear(), // 完整年份 例:2021 -> 2021
yy: ('' + date.getFullYear()).slice(-2), // 缩写年份 例:2021 -> 21
M: date.getMonth() + 1, // 月份 不足两位不补0
MM: ('0' + (date.getMonth() + 1)).slice(-2), // 月份 不足两位补0
d: date.getDate(), // 天 不足两位不补0
dd: ('0' + date.getDate()).slice(-2), // 天 不足两位补0
H: date.getHours(), // 24小时 不足两位不补0
HH: ('0' + date.getHours()).slice(-2), // 24小时 不足两位补0
h: date.getHours() % 12, // 12小时制 不足两位不补0
hh: ('0' + (date.getHours() % 12)).slice(-2), // 12小时制 不足两位补0
m: date.getMinutes(), // 分钟 不足两位不补0
mm: ('0' + date.getMinutes()).slice(-2), // 分钟 不足两位补0
s: date.getSeconds(), // 秒 不足两位不补0
ss: ('0' + date.getSeconds()).slice(-2), // 秒 不足两位补0
w: ['日', '一', '二', '三', '四', '五', '六'][date.getDay()], // 星期
};
return format.replace(/([a-z]+)/gi, function (key) {
return obj[key];
});
}
console.log(formatDate('2021-07-03 19:00:00'));
// 2021-07-03 19:00:00 星期六

dayjs