利用 new Date 对象创建一个 JavaScript Date 实例,该实例呈现时间中的某个时刻。
1.new Date() 方式 创建时间实例,不过是 Sun Mar 12 12006 22:12:12 GMT+0800 (中国标准时间) 这种格式
没有传参的时候返回的是当前时间,有传参的时候,传的参数对应年月日时分秒,当至少提供了年份与月份或者月份和日份时,这一形式的 Date() 返回的 Date 对象没有提供的成员将使用最小可能值(对日期为 1,对年份为 2001,其他为 0)。
-
new Date() 当前时间。
const time = new Date(); // Mon Apr 22 2024 20:37:34 GMT+0800 (中国标准时间)
-
new Date('month,dd,yyyy hh:mm:ss') 指定月 日 年 时 分 秒。
const time = new Date("03,05,2002 15:06:50"); //Tue Mar 05 2002 15:06:50 GMT+0800 (中国标准时间)
-
new Date('month,dd,yyyy') 指定月 日 年,没有传的时分秒按照最小值。
const time = new Date("03,05,2002"); // Tue Mar 05 2002 00:00:00 GMT+0800 (中国标准时间)
-
new Date('month,dd') 指定月 日,没有传的年按照 2001。
const time = new Date("03,05"); // Mon Mar 05 2001 00:00:00 GMT+0800 (中国标准时间)
-
new Date('yyyy, month') 指定年 月,这里虽然和上面一样都是传两个参数,但是由于我们第一个参数是四位数的(两位数也行比如99就会被认定为1999,超过12都会认定为年份),会判定为年,所以第二个参数为 月。
const time = new Date("2003,05"); // Thu May 01 2003 00:00:00 GMT+0800 (中国标准时间)
-
new Date('yyyy, month, dd hh:mm:ss') 指定年 月 日 时 分 秒,最常用。
const time = new Date("2003,05,02 15:23:12"); // Fri May 02 2003 15:23:12 GMT+0800 (中国标准时间)
-
- new Date('yyyy, month, dd') 指定年 月 日。
const time = new Date("2003,05,02"); // Fri May 02 2003 00:00:00 GMT+0800 (中国标准时间)
-
new Date(ms) 指定时间戳对应的时间 ms 毫秒数,以 1970 年 1 月 1 日 为基数开始时间,ms 可以为负数。
const time = new Date(150000000489); // Thu Oct 03 1974 10:40:00 GMT+0800 (中国标准时间)
拓展:时分秒 new Date('yyyy, month, dd hh:mm:ss') 也可以写成 new Date('yyyy, month, dd, hh, mm, ss')。
2.对象方法
-
Date.now() 返回自 1970-1-1 00:00:00 至今所经过的毫秒数。
-
Date.parse() 解析一个表示日期的字符串,并返回从 1970-1-1 00:00:00 所经过的毫秒数。
Date.parse("2003,05,02 00:00:01");
3.实例方法
-
toLocaleString() 格式化实例格式。以 2023/5/28 23:07:35(日期+时间) 形式返回。
-
toLocaleDateString() 格式化实例格式。以 2023/5/28(日期) 形式返回。
-
toLocaleTimeString() 格式化实例格式。以 23:07:35(时间) 形式返回。
-
getDate() 返回实例的日期。
-
getDay() 返回实例是周几。
-
getFullYear() 返回实例的年份。
-
getMonth() 返回实例的月份,因为从 0 开始,所以返回的数比月份小 1。
-
getHours() 返回实例的小时数。
-
getMinutes() 返回实例的分钟数。
-
getSeconds() 返回实例的秒数。
-
getMilliseconds() 返回实例的毫秒数。
-
getTime() 返回一个数值,表示从 1970 年 1 月 1 日 0 时 0 分 0 秒距离该 Date 对象所代表时间的毫秒数。(更早的时间会用负数表示)
-
setFullYear() 设置实例的年份。
-
setMonth() 设置实例的月份,0 ~ 11。
-
setDate() 设置实例的日期。
-
setHours() 设置实例的小时数。
-
setMinutes() 设置实例的分钟数。
-
setSeconds() 设置实例的秒数。
-
setMilliseconds() 设置实例的毫秒数。
4.Date对象格式化函数
Date返回的格式不是我们想要的,所以要格式化一下。
function formaData(timer) {
let year = timer.getFullYear();
let month = timer.getMonth() + 1; // 由于月份从0开始,因此需加1
if (month < 10) month = "0" + month;
let day = timer.getDate();
if (day < 10) day = "0" + day;
let hour = timer.getHours();
if (hour < 10) hour = "0" + hour;
let minute = timer.getMinutes();
if (minute < 10) minute = "0" + minute;
let second = timer.getSeconds();
if (second < 10) second = "0" + second;
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
}