# Date 创建一个 Date 实例,该实例呈现时间中的某个时刻。Date 对象则基于 Unix Time Stamp,即自 1970 年 1 月 1 日(UTC)起经过的毫秒数。 ## 语法 ```ts new Date(); new Date(value); new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]); ``` - 如果没有输入任何参数,则 Date 的构造器会依据系统设置的当前时间来创建一个 Date 对象。 - 如果提供了至少两个参数,其余的参数均会默认设置为 1(如果没有指定 day 参数)或者 0(如果没有指定 day 以外的参数)。 - uts 的时间由世界标准时间(UTC)1970 年 1 月 1 日开始,用毫秒计时,一天由 86,400,000 毫秒组成。Date 对象的范围是 -100,000,000 天至 100,000,000 天(等效的毫秒值)。 目前支持的字符串格式有: + Dec 25, 1995 + 01 Jan 1970 00:00:00 GMT + 1995-12-17T03:24:00 + December 17, 1995 03:24:00 + December 17, 95 03:24:00 + March 13, 08 04:20 + July 20, 69 20:17:40 GMT+00:00 + December 31, 1975, 23:15:30 GMT+11:00 + 2023/08/13 12:35:54 + 1995-02-14 + 2024-01-09 22:00:00 + 2024/5/1 (HBuilder X 4.18 Android/Web 支持) + 2024/5/1 00:00:00 (HBuilder X 4.18 Android/Web 支持) + 2024-05-01 00:00 (HBuilder X 4.18 Android/Web 支持) + 2024/05/01 00:00 (HBuilder X 4.18 Android/Web 支持) + 2024-5-1 00:00 (HBuilder X 4.18 Android/Web 支持) + 2024/5/1 00:00 (HBuilder X 4.18 Android/Web 支持) 如果传入Date构造器的参数字符串不合法,在web平台会抛出 "Invalid Date" 异常 ```ts // Invalid Date new Date("Hello") ``` 在Android/IOS平台,会转换为程序执行时的时间 ```ts // ‍当前日期:[Date]‍ Fri May 31 2024 17:18:02 GMT+0800 new Date("Hello") ``` ### Constructor() ### Constructor(value)_1 ### Constructor(year, monthIndex, date?, hours?, minutes?, seconds?, ms?)_2 ## 静态方法 ### now() ```ts // this example takes 2 seconds to run const start = Date.now() console.log('starting timer...') // expected output: starting timer... setTimeout(() => { const millis = Date.now() - start console.log(`seconds elapsed = ${Math.floor(millis / 1000)}`) // expected output: seconds elapsed = 2 }, 2000) ``` ## 实例方法 ### toString() ### toDateString() ### toISOString() ### toJSON() ### getTime() ### getFullYear() ### getMonth() ### getDate() ### getDay() ### getHours() ### getMinutes() ### getSeconds() ### setTime(time) ### setMilliseconds(ms) ### setSeconds(sec) ### setMinutes(min) ### setHours(hours) ### setDate(date) ### setMonth(month) ### setFullYear(year) 各个平台在处理时间戳为负数时会有细节差异,尽量避免 参数小于1970的情况 ### parse(s)