[TOC] > Sat May 15 2021 00:01:47 GMT+0800 (GMT+08:00) 本来不愿意增加这些内容,因为自己学得不精,写出来不过也是垃圾内容,但可以把自己写 BUG 的经验分享一下倒也是没什么…… > 写 BUG 没什么好丢人的…… ## 时间 monthIndex(月份的顺序) 是从“0”开始计算的,这就意味着一月份为“0”,十二月份为“11”。一周里面,第一天是星期天(0),最后一天是星期六(6), 也是从"0"开始计算的。一个月里面的日期倒是正常的(1-31)。不建议使用getYear()。 > 在 JS宏编辑器中使用。 ```js let now = new Date(2021,5,1) // 不是 5月1日哦 let info = ` 字符化(人类常识中的日期): ${now.toDateString()} 本地化时间文本:${now.toLocaleDateString()} 月份顺序:${now.getMonth()} 月份:${now.getMoth()+1} 一周的第几天:${now.getDay()} 本月的第几天: ${now.getDate()} 完整年份:${now.getFullYear()} ` Console.clear() Console.log(info) ``` ### 超限转换 当Date作为构造函数调用并传入多个参数时,如果数值大于合理范围时(如月份为 13 或者分钟数为 70),相邻的数值会被调整。比如 new Date(2013, 13, 1)等于new Date(2014, 1, 1),它们都表示日期2014-02-01(注意月份是从0开始的)。其他数值也是类似,new Date(2013, 2, 1, 0, 70)等于new Date(2013, 2, 1, 1, 10),都表示同一个时间:2013-03-01T01:10:00。 ### 本地时间和 UTC 当Date作为构造函数调用并传入多个参数时,所定义参数代表的是当地时间。如果需要使用世界协调时 UTC,使用 new Date(Date.UTC(...)) 和相同参数。 举个例子就能理解了,不理解就回去翻翻地理书…… ```js let now = new Date() Console.clear() Console.log("当地时间:"now) Console.log("UTC:"+now.toUTCString()) ``` ### 局限性 如果电脑的时间不准确,那么获取的时间也是不准确的。因此应该避免使用本机时间作为权限参考项,如果时间因素很关键,则应该通过连网获取时间。