Data 对象是提供处理日期和时间的方法和属性的对象。这里我们将解释如何使用 Date 对象。
目录
21-1 创建 Date 对象的实例
21-2 获取 Date 对象的值作为字符串(toString、toUTCString )
21-3 获取 Date 对象的值作为指定语言环境格式(toLocaleString 等)的字符串
21-4 获取 Date 对象的值作为从参考时间经过的毫秒数的值 (getTime, valueOf)
21-5 将从参考时间起经过的毫秒数设置为 Date 对象的新值 (setTime)
21-6 从Date对象值中获取年、月、分、秒等值(getFullYear、getUTCFullYear等)
21-7 将日期对象值设置为新值,例如年、月、分、秒(setFullYear、setUTCFullYear 等)
21-8 获取本地时区和 UTC 时区之间的差异 (getTimezoneOffset)
21-9 从参考时间获取经过的毫秒数(Date.parse、Date.UTC、Date.now)
* Date 对象中使用的 UTC 表示协调世界时。北京标准时间 (CST) 为 UTC + 8 小时。格林威治标准时间 (GMT) 和 UTC 的使用方式相似但不同。
描述如何创建 Date 对象的实例。要创建实例,请使用 Date 对象的构造函数。
日期对象构造函数类型
使用构造函数创建 Date 对象的实例。格式如下。
new Date()
new Date(经过的毫秒数)
new Date(表示日期和时间的字符串)
new Date(年,月[,日[,小时[,分钟[,秒[,毫秒]]]]])
有四种类型的构造函数在指定参数的方式上有所不同。在此之后,我们将解释如何使用每个。
※ 当创建 Date 对象的实例时,它有一个表示特定日期和时间的值。该值自 1970 年 1 月 1 日 00:00:00 UTC 以来以毫秒的形式在内部存储,并且可以使用 Date 对象的实例方法以各种格式检索。
使用当前日期和时间创建 Date 对象的实例
在构造函数中创建不带参数的 Date 对象的实例会创建一个具有当前日期和时间值的实例。格式如下。
new Date()
看看下面的示例。
let d = new Date();
console.log(d.toString());
>> Thu Oct 15 2020 12:44:10 GMT+0800 (北京标准时间)
console.log(d.toUTCString());
>> Thu, 15 Oct 2020 03:44:10 GMT
使用创建实例时的日期和时间值创建实例。
如另一页所述,用于输出 Date 对象值的 toString 方法显示本地环境中设置的时区中的日期。toUTCString 方法显示时区为 UTC(协调世界时)的日期。
创建指定经过的毫秒数的 Date 对象的实例
基准日期 1970 年 1 月 1 日 00:00:00 创建 Date 对象的实例,指定自 UTC 以来的毫秒数。格式如下。
new Date(经过的毫秒数)
创建 Date 对象的实例,其日期时间值表示为自参数中指定的参考日期以来经过的毫秒数。此构造函数指定自 UTC 以来以毫秒为单位的日期和时间,因此您不必担心时区。
看看下面的示例。
let d1 = new Date(1000);
console.log(d1.toUTCString());
>> Thu, 01 Jan 1970 00:00:01 GMT
let d2 = new Date(2002679695356);
console.log(d2.toUTCString());
>> Sat, 18 Jun 2033 03:54:55 GMT
在第一个示例中,我们创建了一个实例,其值为参考日期和时间之后 1000 毫秒(1 秒)的日期和时间。在以下示例中,创建的实例的日期和时间值比参考日期和时间晚 1602679695309 毫秒。
通过指定日期和时间字符串创建 Date 对象的实例
给定一个表示日期和时间的字符串,创建一个 Date 对象的实例。格式如下。
new Date(表示日期和时间的字符串)
未指定字符串的格式。
看看下面的示例。
let d1 = new Date('2020-10-14T21:48:15');
console.log(d1.toString());
>> Wed Oct 14 2020 21:48:15 GMT+0800 (北京标准时间)
let d2 = new Date('2020-10-14T21:48:15+0900');
console.log(d2.toString());
>> Wed Oct 14 2020 21:48:15 GMT+0800 (北京标准时间)
let d3 = new Date('2020-10-14T21:48:15Z');
console.log(d3.toString());
>> Thu Oct 15 2020 06:48:15 GMT+0800 (北京标准时间)
在未指定时区且指定日本标准时间和 UTC 作为时区时创建实例。如果不指定时区,好像指定了本地环境中设置的时区的日期和时间。
通过指定年、分钟等来创建 Date 对象的实例。
通过指定年、月、日、小时、分钟、秒和毫秒来创建 Date 对象的实例。格式如下。
new Date(年,月[,日[,小时[,分钟[,秒[,毫秒]]]]])
年份和月份是必填项,但其他项是可选的。如果省略,则日设置为 1,时、分、秒和毫秒设置为 0。以 4 位或 2 位数字指定年份。如果用两位数指定,它将是 1900 + 年。为月份指定 0 到 11 之间的值。一月是 0,二月是 1,十二月是 11。
该格式没有时区设置项,应用本地环境中设置的时区。请注意,即使您指定了相同的年和月,当程序在不同时区的环境中运行时,也会创建具有不同日期和时间值的 Date 对象的实例。
看看下面的示例。
let d1 = new Date(2012, 9);
console.log(d1.toString());
>> Mon Oct 01 2012 00:00:00 GMT+0800 (北京时间)
let d2 = new Date(96, 3, 24);
console.log(d2.toString());
>> Wed Apr 24 1996 00:00:00 GMT+0800 (北京时间)
let d3 = new Date(2020, 9, 14, 16, 28, 5, 114);
console.log(d3.toString());
>> Wed Oct 14 2020 16:28:05 GMT+0800 (北京时间)
第一个例子只指定了年月,所以其他的值都设置了默认值。第二个示例指定了两位数的年份,因此 1900 + 指定的年份。在第三个示例中,我们指定了所有项目。
如果在没有 new 运算符的情况下调用构造函数
在不使用 new 运算符的情况下将 Date 对象的构造函数作为函数调用会返回表示当前日期和时间的字符串。
看看下面的示例。
let str = Date();
console.log(str);
>> Thu Oct 15 2020 04:33:42 GMT+0800 (北京时间)
console.log(typeof str)
>> string
我将当前日期时间值作为字符串。即使您为构造函数指定了一个参数,它也会被忽略。
Date 对象的实例方法 toString 以本地时区的字符串形式返回 Date 对象的日期和时间值。toDateString 仅返回日期信息作为字符串,toTimeString 仅返回时间信息作为字符串。
Date 对象的实例方法 toUTCString 以 UTC 时区的字符串形式返回 Date 对象的日期和时间值。toJSON 还返回 Date 对象的日期和时间值(包括毫秒值)作为 UTC 时区中的字符串。
本节介绍如何使用 Date 对象的 toString、toDateString、toTimeString、toUTCString 和 toJSON 方法。
获取日期和时间作为字符串 (toString)
Date 对象的 toString 方法将 Date 对象的日期和时间值作为本地时区中的字符串返回。格式如下。
Date对象.toString()
以字符串形式返回 Date 对象的日期和时间值。字符串的格式是区域设置为美国时使用的格式。使用的时区是本地环境设置的时区。
看看下面的示例。
let d = new Date();
console.log(d.toString());
>> Thu Oct 15 2020 05:18:40 GMT+0800 (北京时间)
使用当前日期和时间创建 Date 对象后,我在 Date 对象中获得了字符串形式的日期和时间信息。
获取字符串形式的日期 (toDateString)
Date 对象的 toDateString 方法将 Date 对象的日期相关值作为本地时区中的字符串返回。格式如下。
Dateオ对象.toDateString()
以字符串形式返回 Date 对象的日期值。字符串格式和时区与 toString 方法相同。
看看下面的示例。
let d = new Date();
console.log(d.toDateString());
>> Thu Oct 18 2022
使用当前日期和时间创建 Date 对象后,我在 Date 对象中获得了字符串形式的日期信息。
获取字符串形式的时间 (toTimeString)
Date 对象的 toTimeString 方法将 Date 对象的时间值作为本地时区的字符串返回。格式如下。
Date对象.toTimeString()
以字符串形式返回 Date 对象的时间值。字符串格式和时区与 toString 方法相同。
看看下面的示例。
let d = new Date();
console.log(d.toTimeString());
>> 06:00:02 GMT+0800 (北京时间)
使用当前日期和时间创建 Date 对象后,我在 Date 对象中获得了字符串形式的时间信息。
以 UTC 作为时区获取日期和时间作为字符串 (toUTCString)
Date 对象的 toUTCString 方法将 Date 对象的日期和时间值作为以 UTC 为时区的字符串返回。格式如下。
Date对象.toUTCString()
以字符串形式返回 Date 对象的日期和时间值。字符串的格式是区域设置为美国时使用的格式。UTC 用作时区。
看看下面的示例。
let d = new Date();
console.log(d.toUTCString());
>> Thu, 16 Oct 2022 05:03:26 GMT
console.log(d.toString());
>> Thu Oct 16 2023 14:03:26 GMT+0800 (北京时间)
使用当前日期和时间创建 Date 对象后,我们将获得一个字符串,该字符串表示 Date 对象中的日期和时间信息,时区为 UTC。为了进行比较,我还在同一个 Data 对象上使用了 toString 方法来获取本地时区的字符串。
请注意,曾经有一种 toGMTString 方法与 toUTCString 方法的用途相同,但现在已弃用。
以 UTC 作为时区 (toJSON) 获取字符串形式的日期和时间(包括毫秒)
Date 对象的 toJSON 方法将 Date 对象的日期和时间值作为以 UTC 为时区的字符串返回。格式如下。
Date对象.toJSON()
以字符串形式返回 Date 对象的日期和时间值。此方法要求字符串包含毫秒。字符串格式使用 ISO 8601 格式。UTC 用作时区。
看看下面的示例。
let d = new Date();
console.log(d.toJSON());
>> 2020-10-17T09:24:31.875Z
console.log(d.toUTCString());
>> Sat, 17 Oct 2020 09:24:31 GMT
使用当前日期和时间创建 Date 对象后,我得到一个字符串,该字符串表示 Date 对象中的日期和时间(包括毫秒)信息,时区为 UTC。我还使用 toUTCString 方法获取相同数据对象的字符串表示形式以进行比较。
Date 对象的实例方法 toLocaleString 以指定语言环境格式的字符串形式返回 Date 对象的日期和时间值。toLocaleDateString 返回日期信息,toLocaleTimeString 以指定语言环境格式的字符串形式返回时间信息。本节介绍如何使用 Date 对象的 toLocaleString、toLocaleDateString 和 toLocaleTimeString 方法。
以指定语言环境 (toLocaleString) 的格式获取日期和时间作为字符串
Date 对象的 toLocaleString 方法将 Date 对象的日期和时间值作为针对指定语言环境格式化的字符串返回。格式如下。
Date对象.toLocaleString([[locale[, options]])
以字符串形式返回 Date 对象的日期和时间值。字符串的格式使用参数中指定的语言环境的格式。如果省略语言环境,则使用浏览器中设置的语言环境。使用的时区是本地环境设置的时区。
看看下面的示例。
let d = new Date();
console.log(d.toLocaleString());
>> 2020/10/15 8:16:09
console.log(d.toLocaleString('en-US'));
>> 10/15/2020, 8:16:09 AM
console.log(d.toLocaleString('ja-JP'));
>> 2020/10/15 8:16:09
console.log(d.toLocaleString('zh-CN'));
>> 2020/10/15 上午8:16:09
console.log(d.toLocaleString('fr-FR'));
>> 15/10/2020 a 08:16:09
使用当前日期和时间创建 Date 对象后,我通过指定语言环境以字符串形式获取 Date 对象中的日期和时间信息。
以指定语言环境 (toLocaleDateString) 的格式获取日期作为字符串
Date 对象的 toLocaleDateString 方法将 Date 对象的日期值作为指定语言环境格式的字符串返回。格式如下。
Date对象.toLocaleDateString([locale[, options]])
以字符串形式返回 Date 对象的日期值。字符串的格式使用参数中指定的语言环境的格式。如果省略语言环境,则使用浏览器中设置的语言环境。时区与 toLocaleString 方法相同。
看看下面的示例。
let d = new Date();
console.log(d.toLocaleDateString());
>> 2022/10/15
console.log(d.toLocaleDateString('en-US'));
>> 10/15/2022
console.log(d.toLocaleDateString('ja-JP'));
>> 2022/10/15
console.log(d.toLocaleDateString('zh-CN'));
>> 2022/10/15
console.log(d.toLocaleDateString('fr-FR'));
>> 15/10/2022
在使用当前日期和时间创建 Date 对象后,我指定了语言环境并在 Date 对象中获取日期信息作为字符串。
以指定语言环境 (toLocaleTimeString) 的格式获取时间作为字符串
Date 对象的 toLocaleTimeString 方法将 Date 对象的时间值作为指定语言环境格式的字符串返回。格式如下。
Date对象.toLocaleTimeString([locale[, options]])
以字符串形式返回 Date 对象的时间值。字符串的格式使用参数中指定的语言环境的格式。如果省略语言环境,则使用浏览器中设置的语言环境。时区与 toLocaleString 方法相同。
看看下面的示例。
let d = new Date();
console.log(d.toLocaleTimeString());
>> 8:32:10
console.log(d.toLocaleTimeString('en-US'));
>> 8:32:10 AM
console.log(d.toLocaleTimeString('ja-JP'));
>> 8:32:10
console.log(d.toLocaleTimeString('zh-CN'));
>> 上午8:32:10
console.log(d.toLocaleTimeString('fr-FR'));
>> 08:32:10
使用当前日期和时间创建 Date 对象后,我们通过指定区域设置以字符串形式获取 Date 对象中的时间信息。
Date 对象的实例方法 getTime 返回 Date 对象的日期和时间值,作为自参考时间(00:00:00 UTC,1970 年 1 月 1 日)以来的毫秒数。valueOf 方法也返回相同的值。本节介绍如何使用 Date 对象的 getTime 和 valueOf 方法。
获取日期和时间作为经过的毫秒值 (getTime)
Date 对象的 getTime 方法返回 Date 对象的日期和时间值,作为自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。格式如下。
Date对象.getTime()
返回 Date 对象的日期和时间值,作为自参考日期和时间以来经过的毫秒数。
看看下面的示例。
let d1 = new Date(1000);
console.log(d1.getTime());
>> 1000
let d2 = new Date();
console.log(d2.getTime());
>> 1602757673447
在第一个示例中,我们将自参考时间 (10000) 以来的毫秒数指定为构造函数的参数,以创建 Date 对象的实例。获取此对象的日期和时间作为从参考时间经过的秒数的值时返回 1000。在第二个示例中,在使用当前日期和时间创建 Date 对象后,获取 Date 对象中包含的日期和时间信息作为从参考时间经过的秒数。
获取 Date 对象的原始值 (valueOf)
Date 对象的 valueOf 方法返回 Date 对象具有的原始值。格式如下。
Date对象.valueOf()
Date 对象在内部将日期和时间信息存储为自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。valueOf 方法返回经过的毫秒数的内部值。结果,它将返回与 getTime 方法相同的值。
看看下面的示例。
let d = new Date();
console.log(d.valueOf());
>> 1681035236965
获取自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数,这是 Date 对象的原始值。
Date 对象的 setTime 实例方法将自参考时间(00:00:00 UTC,1970 年 1 月 1 日)起的毫秒值设置为 Date 对象的新值。在这里,我将解释如何使用 Date 对象的 setTime 方法。
设置经过毫秒数的日期和时间值 (setTime)
Date 对象的 setTime 方法将 Date 对象的新值设置为自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。格式如下。
Date对象.setTime(经过的毫秒数)
将指定的经过毫秒数设置为 Date 对象的新值。
看看下面的示例。
let d = new Date();
console.log(d.getTime());
>> 1602918864282
d.setTime(10000);
console.log(d.getTime());
>> 10000
console.log(d.toUTCString());
>> Thu, 01 Jan 1970 00:00:10 GMT
我们将 10000 设置为 Date 对象的新值。如果在设置后输出UTC时区的新Date对象的值,可以看到设置为1970年1月1日00:00:00 UTC后10秒(10000毫秒)的时间。
Date 对象实例方法 getFullYear 从 Date 对象的值中检索年份值。类似地,提供了从 Date 对象中获取月、日、星期几、小时、分钟、秒和毫秒值的方法。
此外,作为 Date 对象的实例方法的 getUTCFullYear 从作为 UTC 时区值的 Date 对象保持的值中获取年份值。类似地,提供了从Date对象的值中获取UTC时区的月、日、星期几、小时、分钟、秒和毫秒值的方法。
在这里,我们将解释如何使用方法从 Date 对象的值中获取日期和时间值,例如 Date 对象的 getFullYear 方法。
获取日期和时间值的方法列表
提供了以下方法以从 Date 对象持有的值中获取日期和时间值。
方法 | 说明 |
getFullYear | 获取年份值 |
getMonth | 获取月值 |
getDate | 获取日值 |
getDay | 获取日值 |
getHours | 获取小时值 |
getMinutes | 获取分钟值 |
getSeconds | 获取秒值 |
getMilliseconds | 获取毫秒值 |
每个方法分别从 Date 类对象持有的值中获取年和分钟值。这个时候使用本地环境中设置的时区。
类似地,日期和时间值是从Date对象持有的值中获取的,但是提供了以下方法来获取使用UTC时区表示的值。
方法 | 说明 |
getUTCFullYear | 获取 UTC 时区的年份值 |
getUTCMonth | 获取 UTC 时区的月份值 |
getUTCDate | 获取 UTC 时区的日值 |
getUTCDay | 获取 UTC 时区的日值 |
getUTCHours | 获取 UTC 时区的小时值 |
getUTCMinutes | 获取 UTC 时区的分钟值 |
getUTCSeconds | 获取 UTC 时区的第二个值 |
getUTCMilliseconds | 获取 UTC 时区的毫秒值 |
每个方法分别从 Date 类对象持有的值中获取年和分钟值。此时使用 UTC 时区。
让我们按顺序来看。
获取年、月、日和日值
我将解释从 Date 对象的值中分别获取年、月、日和星期几的方法。
获取年份值 (getFullYear)
Date 对象的 getFullYear 方法从 Date 对象的日期和时间值返回本地时区的“年”值作为数字。格式如下。
Date对象.getFullYear()
以 1000 到 9999 之间的四位数字形式返回年份值。对于 1994 年返回 1994,对于 2020 年返回 2020。
获取月份值 (getMonth)
Date 对象的 getMonth 方法从 Date 对象的日期和时间值返回当地时区“月份”的数值。格式如下。
Date对象.getMonth()
以 0 到 11 之间的数字形式返回月份值。0对应一月,1对应二月,11对应十二月。
获取日期值 (getDate)
Date 对象的 getDate 方法从 Date 对象的日期和时间值中返回当地时区“天”的数值。格式如下。
Date对象.getDate()
以 1 到 31 之间的数字形式返回日期值。1 等于 1 天,31 等于 31 天。
获取星期几的值(getDay)
Date 对象的 getDay 方法以 Date 对象的日期和时间值中的数字形式返回本地时区中“星期几”的值。格式如下。
Date对象.getDay()
以 0 到 6 之间的数字形式返回工作日值。0 等于星期日,1 等于星期一,6 等于星期六。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toString());
>> Fri Oct 16 2020 18:13:06 GMT+0800 (北京时间)
let year = d.getFullYear();
let month = d.getMonth() + 1;
let day = d.getDate();
let dayofweek = d.getDay();
const dayname = ['周日','周一','周二','周三','周四','周五','周六'];
console.log(year + '年' + month + '月' + day + '日' + '[' + dayname[dayofweek] + ']');
>> 2020年10月16日[周五]
我们从 Date 对象持有的值中获取了年、月、日和星期几值。请注意,月份从 0 开始。为了将星期几显示为“星期一”或“星期二”等字母而不是数字,准备了显示用数组并显示星期几。
获取小时、分钟、秒和毫秒值
我将解释从 Date 对象的值中分别获取小时、分钟、秒和毫秒值的方法。
获取小时值 (getHours)
Date 对象的 getHours 方法从 Date 对象的日期和时间值中返回本地时区“小时”的值作为数字。格式如下。
Date对象.getHours()
以 0 到 23 之间的数字形式返回小时值。
获取分钟值 (getMinutes)
Date 对象的 getMinutes 方法从 Date 对象的日期和时间值返回当地时区的“分钟”数。格式如下。
Date对象.getMinutes()
以 0 到 59 之间的数字形式返回分钟值。
获取第秒值 (getSeconds)
Date 对象的 getSeconds 方法根据 Date 对象的日期和时间值返回当地时区的秒数。格式如下。
Date对象.getSeconds()
以 0 到 59 之间的数字形式返回秒值。
获取毫秒值(getMilliseconds)
Date 对象的 getMilliseconds 方法从 Date 对象的日期和时间值返回本地时区中的“毫秒”数。格式如下。
Date对象.getMilliseconds()
返回 0 到 999 之间的数字,表示 Date 对象的毫秒值。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toString());
>> Fri Oct 16 2020 18:15:10 GMT+0800 (北京时间)
let hour = d.getHours();
let minute = d.getMinutes();
let second = d.getSeconds();
let millisecond = d.getMilliseconds();
console.log(hour + '時' + minute + '分' + second + '.' + millisecond + '秒');
>> 18時15分10.149秒
我们从 Date 对象持有的值中获取了小时、分钟、秒和毫秒值。
获取UTC时区的年月日日值
我们将解释从 Date 对象持有的值中单独获取 UTC 时区的年、月、日和星期几的方法。
获取 UTC 时区的年份值 (getUTCFullYear)
Date 对象的 getUTCFullYear 方法从 Date 对象的日期和时间值返回 UTC 时区中的“年”值作为数字。格式如下。
Date对象.getUTCFullYear()
以 1000 到 9999 之间的四位数字形式返回年份值。对于 1994 年返回 1994,对于 2020 年返回 2020。
获取 UTC 时区的月份值 (getUTCMonth)
Date 对象的getUTCMonth 方法从Date 对象的日期和时间值返回UTC 时区“月份”的数值。格式如下。
Date对象.getUTCMonth()
以 0 到 11 之间的数字形式返回月份值。0对应一月,1对应二月,11对应十二月。
获取 UTC 时区的日值 (getUTCDate)
Date 对象的 getUTCDate 方法从 Date 对象的日期和时间值返回 UTC 时区中“天”的数值。格式如下。
Date对象.getUTCDate()
以 1 到 31 之间的数字形式返回日期值。1 等于 1 天,31 等于 31 天。
获取 UTC 时区的日值 (getUTCDay)
Date 对象的 getUTCDay 方法从 Date 对象的日期和时间值返回 UTC 时区中“星期几”的值作为数字。格式如下。
Date对象.getUTCDay()
以 0 到 6 之间的数字形式返回工作日值。0 等于星期日,1 等于星期一,6 等于星期六。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toUTCString());
>> Fri, 16 Oct 2020 10:13:23 GMT
let year = d.getUTCFullYear();
let month = d.getUTCMonth() + 1;
let day = d.getUTCDate();
let dayofweek = d.getUTCDay();
const dayname = ['周日','周一','周二','周三','周四','周五','周六'];
console.log(year + '年' + month + '月' + day + '日' + '[' + dayname[dayofweek] + ']');
>> 2020年10月16日[周五]
UTC时区的年、月、日、星期是从Date对象持有的值中获取的。请注意,月份从 0 开始。为了将星期几显示为“星期一”或“星期二”等字母而不是数字,准备了显示用数组并显示星期几。
获取 UTC 时区的小时、分钟、秒和毫秒值
本节介绍从 Date 对象持有的值中分别获取 UTC 时区的小时、分钟、秒和毫秒值的方法。
获取 UTC 时区的小时值 (getUTCHours)
Date 对象的 getUTCHours 方法从 Date 对象的日期和时间值中返回 UTC 时区“小时”的值作为数字。格式如下。
Date对象.getUTCHours()
以 0 到 23 之间的数字形式返回小时值。
获取 UTC 时区的分钟值 (getUTCMinutes)
Date 对象的 getUTCMinutes 方法根据 Date 对象的日期和时间值返回 UTC 时区的分钟数。格式如下。
Date对象.getUTCMinutes()
以 0 到 59 之间的数字形式返回分钟值。
获取 UTC 时区的秒值 (getUTCSeconds)
Date 对象的 getUTCSeconds 方法从 Date 对象的日期和时间值返回 UTC 时区中的秒数。格式如下。
Date对象.getUTCSeconds()
以 0 到 59 之间的数字形式返回秒值。
获取UTC时区的毫秒值(getUTCMilliseconds)
Date 对象的 getUTCMilliseconds 方法从 Date 对象的日期和时间值返回 UTC 时区中的“毫秒”数。格式如下。
Date对象.getUTCMilliseconds()
返回 0 到 999 之间的数字,表示 Date 对象的毫秒值。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toUTCString());
>> Fri Oct 16 2020 18:15:10 GMT+0800 (北京时间)
let hour = d.getUTCHours();
let minute = d.getUTCMinutes();
let second = d.getUTCSeconds();
let millisecond = d.getUTCMilliseconds();
console.log(hour + '時' + minute + '分' + second + '.' + millisecond + '秒');
>> 18時15分10.149秒
UTC时区的小时、分钟、秒和毫秒值是从Date对象持有的值中获取的。
Date 对象实例方法 setFullYear 获取 Date 对象具有的值的新年份值。类似地,提供了将新的月、日、日、时、分、秒和毫秒值设置为 Date 对象的值的方法。
此外,作为 Date 对象的实例方法的 setUTCFullYear 将 Date 对象的值的年份值设置为 UTC 时区中的值。类似地,提供了将 UTC 时区中新的月、日、日、时、分、秒和毫秒值设置为 Date 对象的值的方法。
本节说明如何使用 Date 对象的 setFullYear 方法等方法为 Date 对象的值设置新的日期和时间值。
设置日期和时间值的方法列表
提供了以下方法来为 Date 对象所持有的值设置日期和时间值。
方法 | 说明 |
setFullYear | 设置年份值 |
setMonth | 设置月份值 |
setDate | 设置日值 |
setHours | 设置小时值 |
setMinutes | 设置分钟值 |
setSeconds | 设置秒值 |
setMilliseconds | 设置毫秒值 |
每个方法都为 Date 类对象保存的值设置一个新的年份和分钟值。此时设置为本地环境中设置的时区的值。
类似地,为Date对象持有的值设置日期和时间值,但是提供了以下方法来设置UTC时区的值。
方法 | 说明 |
setUTCFullYear | 设置 UTC 时区的年份值 |
setUTCMonth | 设置 UTC 时区的月份值 |
setUTCDate | 以 UTC 时区设置日值 |
setUTCHours | 设置 UTC 时区的小时值 |
setUTCMinutes | 在 UTC 时区中设置分钟值 |
setUTCSeconds | 设置 UTC 时区的秒值 |
setUTCMilliseconds | 设置 UTC 时区的毫秒值 |
每个方法都为 Date 类对象设置新的年份或分钟值。此时使用 UTC 时区。
让我们按顺序来看。
设置年、月、日值
本节介绍单独更改 Date 对象的年月日值的方法。
更改年份值 (setFullYear)
Date 对象的 setFullYear 方法为 Date 对象的日期和时间值设置当地时区的“年”值。格式如下。
Date对象.setFullYear(年[, 月[, 日]])
将年份值指定为 1000 到 9999 之间的四位数。对于 1994 年返回 1994,对于 2020 年返回 2020。setFullYear 方法允许您设置月和日值以及年(在这种情况下,将月设置为 0 到 11 之间的数字,将日设置为 1 到 31 之间的数字)。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 06:07:10 GMT+0800 (北京时间)
d.setFullYear(2018);
console.log(d.toString());
>> Wed Oct 17 2018 06:07:10 GMT+0800 (北京时间)
d.setFullYear(2014, 8, 23);
console.log(d.toString());
>> Tue Sep 23 2014 06:07:10 GMT+0800 (北京时间)
打印 Date 对象的值后,我更改了年份值。我也试过同时改变年月日的值。
更改月份值 (setMonth)
Date 对象的 setMonth 方法为 Date 对象的日期和时间值设置本地时区中的“月份”值。格式如下。
Date对象.setMonth(月[, 日])
将月份值设置为 0 到 11 之间的数字。0对应一月,1对应二月,11对应十二月。setMonth 方法允许您设置日期值和月份(在这种情况下,将日期设置为 1 到 31 之间的数字)。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 06:12:35 GMT+0800 (北京时间)
d.setMonth(5);
console.log(d.toString());
>> Wed Jun 17 2020 06:12:35 GMT+0800 (北京时间)
打印 Date 对象的值后,我们更改了月份的值。
更改日期值 (setDate)
Date 对象的 setDate 方法将 Date 对象的日期和时间值设置为本地时区的“天”值。格式如下。
Date对象.setDate(天)
将日期值设置为 1 到 31 之间的数字。1 等于 1 天,31 等于 31 天。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 06:16:40 GMT+0800 (北京时间)
d.setDate(24);
console.log(d.toString());
>> Sat Oct 24 2020 06:16:40 GMT+0800 (北京时间)
打印 Date 对象的值后,我们更改了日期值。
设置小时、分钟、秒和毫秒值
本节介绍分别更改 Date 对象的小时、分钟、秒和毫秒值的方法。
更改小时值 (setHours)
Date 对象的 setHours 方法为 Date 对象中的日期和时间值设置当地时区的“小时”值。格式如下。
Date对象.setHours(小时[, 分钟[, 秒[, 毫秒]]])
将小时值指定为 0 到 23 之间的数字。setHours 方法可用于设置分钟、秒和毫秒以及小时(在这种情况下,指定一个从 0 到 59 的数字表示分钟,0 到 59 表示秒,0 到 999 表示毫秒。这样做)。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 06:37:18 GMT+0800 (北京时间)
d.setHours(12);
console.log(d.toString());
>> Sat Oct 17 2020 12:37:18 GMT+0800 (北京时间)
d.setHours(21, 12, 20, 712);
console.log(d.toString());
>> Sat Oct 17 2020 21:12:20 GMT+0800 (北京时间)
打印 Date 对象的值后,我们更改了小时值。我也试过同时改变小时、分钟、秒和毫秒的值。
更改分钟值 (setMinutes)
Date 对象的 setMinutes 方法为 Date 对象中的日期和时间值设置当地时区的分钟数。格式如下。
Date对象.setMinutes(分钟[, 秒[, 毫秒]])
将分钟值设置为 0 到 59 之间的数字。setMinutes 方法可用于同时设置分钟、秒和毫秒(在这种情况下,秒应指定为 0 到 59,毫秒应指定为 0 到 999)。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 06:43:06 GMT+0800 (北京时间)
d.setMinutes(4);
console.log(d.toString());
>> Sat Oct 17 2020 06:04:06 GMT+0800 (北京时间)
打印 Date 对象的值后,我更改了分钟值。
更改秒值 (setSeconds)
Date 对象的 setSeconds 方法为 Date 对象的日期和时间值设置当地时区的“秒”值。格式如下。
Date对象.setSeconds(秒[, 毫秒])
将秒值设置为 0 到 59 之间的数字。除了分钟之外,setSeconds 方法还可以设置毫秒的值(在这种情况下,毫秒应指定为 0 到 999 之间的数字)。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 06:47:44 GMT+0800 (北京时间)
d.setSeconds(18);
console.log(d.toString());
>> Sat Oct 17 2020 06:47:18 GMT+0800 (北京时间)
打印 Date 对象的值后,我更改了秒的值。
更改毫秒值 (setMilliseconds)
Date 对象的 setMilliseconds 方法为 Date 对象的日期和时间值设置本地时区的“毫秒”值。格式如下。
Date对象.setMilliseconds(毫秒)
使用 0 到 999 之间的数字设置 Date 对象值的毫秒值。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.getMilliseconds());
>> 686
d.setMilliseconds(777);
console.log(d.getMilliseconds());
>> 777
输出Date对象的毫秒值后,我改了毫秒值。
以UTC时区设置年月日值
我们将解释在 Date 对象的值中分别更改 UTC 时区的年、月和日值的方法。
更改 UTC 时区的年份值 (setUTCFullYear)
Date 对象的 setUTCFullYear 方法为 Date 对象的日期和时间值设置 UTC 时区的“年”值。格式如下。
Date对象.setUTCFullYear(年[, 月[, 日]])
将年份值指定为 1000 到 9999 之间的四位数。对于 1994 年返回 1994,对于 2020 年返回 2020。setUTCFullYear 方法除了年份之外还可以设置月份和日期值(在这种情况下,将月份设置为 0 到 11 之间的数字,将日期设置为 1 到 31 之间的数字)。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toUTCString());
>> Fri, 16 Oct 2020 22:02:22 GMT
d.setUTCFullYear(2017);
console.log(d.toUTCString());
>> Mon, 16 Oct 2017 22:02:22 GMT
d.setUTCFullYear(1996, 3, 30);
console.log(d.toUTCString());
>> Tue, 30 Apr 1996 22:02:22 GMT
在输出具有UTC时区值的Date对象的值后,我更改了年份值。我也试过同时改变年月日的值。
更改 UTC 时区的月份值 (setUTCMonth)
Date 对象的 setUTCMonth 方法为 Date 对象的日期和时间值设置 UTC 时区中的“月”值。格式如下。
Date对象.setUTCMonth(月[, 日])
将月份值设置为 0 到 11 之间的数字。0对应一月,1对应二月,11对应十二月。setMonth 方法允许您设置日期值和月份(在这种情况下,将日期设置为 1 到 31 之间的数字)。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toUTCString());
>> Fri, 16 Oct 2020 22:06:30 GMT
d.setUTCMonth(2);
console.log(d.toUTCString());
>> Mon, 16 Mar 2020 22:06:30 GMT
在输出 UTC 时区的 Date 对象的值后,我更改了月份值。
更改 UTC 时区中的日期值 (setUTCDate)
Date 对象的 setUTCDate 方法为 Date 对象的日期和时间值设置 UTC 时区中的“天”值。格式如下。
Date对象.setUTCDate(天)
将日期值设置为 1 到 31 之间的数字。1 等于 1 天,31 等于 31 天。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toUTCString());
>> Fri, 16 Oct 2020 22:06:30 GMT
d.setUTCDate(28);
console.log(d.toUTCString());
>> Mon, 16 Mar 2020 22:06:30 GMT
在输出具有UTC时区值的Date对象的值后,我更改了日期值。
设置UTC时区的时、分、秒、毫秒值
本节描述了在 Date 对象持有的值中分别更改 UTC 时区的小时、分钟、秒和毫秒值的方法。
更改 UTC 时区的小时值 (setUTCHours)
Date对象的setUTCHours方法为Date对象中的日期和时间值设置UTC时区的“小时”值。格式如下。
Date对象.setUTCHours(小时[, 分钟[, 秒[, 毫秒]]])
将小时值指定为 0 到 23 之间的数字。使用 setUTCHours 方法,您可以设置分钟、秒和毫秒以及小时(在这种情况下,指定一个从 0 到 59 的数字表示分钟,0 到 59 表示秒,0 到 999 表示毫秒。要做)。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toUTCString());
>> Sat Oct 17 2020 06:37:18 GMT+0800 (北京时间)
d.setUTCHours(2);
console.log(d.toUTCString());
>> Sat Oct 17 2020 12:37:18 GMT+0800 (北京时间)
d.setUTCHours(19, 36, 8, 284);
console.log(d.toUTCString());
>> Sat Oct 17 2020 21:12:20 GMT+0800 (北京时间)
输出具有UTC时区值的Date对象的值后,小时值发生了变化。我也试过同时改变小时、分钟、秒和毫秒的值。
更改 UTC 时区的分钟值 (setUTCMinutes)
Date 对象的 setUTCMinutes 方法为 Date 对象的日期和时间值设置 UTC 时区的分钟值。格式如下。
Date对象.setUTCMinutes(分钟[, 秒[, 毫秒]])
将分钟值设置为 0 到 59 之间的数字。setUTCMinutes 方法可用于设置秒和毫秒以及分钟(在本例中,秒指定为 0 到 59,毫秒指定为 0 到 999)。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toUTCString());
>> Fri, 16 Oct 2020 22:18:06 GMT
d.setUTCMinutes(17);
console.log(d.toUTCString());
>> Fri, 16 Oct 2020 22:17:06 GMT
在UTC时区输出Date对象的值后,我更改了分钟值。
更改 UTC 时区中的秒值 (setUTCSeconds)
Date 对象的 setUTCSeconds 方法为 Date 对象的日期和时间值设置 UTC 时区中的“秒”值。格式如下。
Date对象.setUTCSeconds(秒[, 毫秒])
将秒值设置为 0 到 59 之间的数字。setUTCSeconds 方法可用于设置毫秒和分钟(在这种情况下,毫秒应该是 0 到 999 之间的数字)。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.toUTCString());
>> Sat Oct 17 2020 06:47:44 GMT+0800 (北京时间)
d.setUTCSeconds(58);
console.log(d.toUTCString());
>> Sat Oct 17 2020 06:47:18 GMT+0800 (北京时间)
用UTC时区的值输出Date对象的值后,我更改了第二个值。
更改UTC时区的毫秒值(setUTCMilliseconds)
Date 对象的 setUTCMilliseconds 方法为 Date 对象的日期和时间值设置 UTC 时区中的“毫秒”值。格式如下。
Date对象.setUTCMilliseconds(毫秒)
使用 0 到 999 之间的数字设置 Date 对象值的毫秒值。
示例代码
看看下面的示例。
let d = new Date();
console.log(d.getUTCMilliseconds());
>> 717
d.setUTCMilliseconds(846);
console.log(d.getUTCMilliseconds());
>> 846
在UTC时区输出Date对象的毫秒值后,毫秒值发生了变化。
Date 对象实例方法 getTimezoneOffset 返回本地时区和 UTC 时区之间的分钟差值。本节介绍如何使用 Date 对象的 getTimezoneOffset 方法。
获取本地和 UTC 之间的时区差异 (getTimezoneOffset)
Date 对象的 getTimezoneOffset 方法返回本地时区和 UTC 时区之间的差异。格式如下。
Date对象.getTimezoneOffset()
虽然不是静态方法,但无论 Date 对象的内容如何,它都会返回当前环境中本地时区和 UTC 时区之间的时差。返回值返回从本地看到的 UTC 时区的分钟数。例如,如果您当地的时区是 UTC+0800,则 -8(小时)x 60(分钟)= -480。
看看下面的示例。
let d = new Date();
console.log(d.toString());
>> Sat Oct 17 2020 14:34:06 GMT+0800 (北京时间)
-->
console.log(d.getTimezoneOffset());
>> -480
这样我们就得到 -480 作为本地和 UTC 之间的时区差异。
Date 对象的静态方法 Date.parse 、 Date.UTC 和 Date.now 是从参考时间(1970 年 1 月 1 日 00:00:00 UTC)到由值确定的日期和时间经过的毫秒数在参数中指定。返回值 本节介绍如何使用 Date 对象的 Date.parse、Date.UTC 和 Date.now 方法。
获取由字符串中指定的值确定的日期和时间的参考时间经过的毫秒数 (Date.parse)
Date 对象的 Date.parse 方法返回字符串指定的日期和时间自参考时间(00:00:00 UTC,1970 年 1 月 1 日)以来的毫秒数。格式如下。
Date.parse(代表日期的字符串)
参数是表示日期的字符串。格式尚未确定,但似乎最好指定为 ISO 8601 格式。
YYYY-MM-DDThh:mm:ss.000Z
YYYY-MM-DDThh:mm:ss.000+00:00
看看下面的示例。
console.log(Date.parse('1970-01-01T00:00:01Z'));
>> 1000
console.log(Date.parse('2020-04-15T12:34:18Z'));
>> 1586954058000
console.log(Date.parse('1992-11-04T21:02:45.227+09:00'));
>> 720878565227
以字符串的形式获取从 1970 年 1 月 1 日 00:00:00 UTC 起经过的毫秒数,作为自变量指定的日期和时间。
获取由指定年份和小时值(Date.UTC)确定的日期和时间从参考时间经过的毫秒数
Date 对象的 Date.UTC 方法返回自参考时间(00:00:00 UTC,1970 年 1 月 1 日)以来经过的毫秒数,该日期和时间由年、月、分和秒指定参数的值。格式如下。
Date.UTC(年[, 月[, 日[, 小时[, 分钟[, 秒[, 毫秒]]]]]])
该值指定 UTC 时区中的值。年为四位数字,月为 0 到 11 的数字(0 是一月,11 是十二月),日是 1 到 31 的数字,小时是 0 到 23 的数字,分钟是 0 的数字到 59 ,秒为 0 到 59 之间的数字,毫秒为 0 到 999 之间的数字。年份是必需的,但年份以外的任何内容都是可选的。
看看下面的示例。
console.log(Date.UTC(1970,0,1,0,0,1));
>> 1000
console.log(Date.UTC(2020,3,15,12,34,18));
>> 1586954058000
获取自变量 year 和 month 指定的日期和时间从 1970 年 1 月 1 日 00:00:00 UTC 起经过的毫秒数。
从当前日期和时间(Date.now)的参考时间获取经过的毫秒数
Date 对象的 Date.now 方法返回当前日期和时间自参考时间(00:00:00 UTC,1970 年 1 月 1 日)以来的毫秒数。格式如下。
Date.now()
自动获取感兴趣的当前日期和时间。
看看下面的示例。
let millisecond = Date.now();
console.log(millisecond);
>> 1602937250760
let d = new Date(millisecond);
console.log(d.toUTCString());
>> 1602937250760
这样我们就分别得到了当前日期和时间自 1970 年 1 月 1 日 00:00:00 UTC 以来经过的毫秒数。