JavaScript系列之内置对象Date对象

目录


1、Date实例

创建一个 JavaScript Date 实例,该实例呈现时间中的某个时刻。Date 对象则基于 Unix Time Stamp,即自 1970 年 1 月 1 日(UTC)起经过的毫秒数。

1.1、语法

new Date();
new Date(value);
new Date(dateString);
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);

1.2、参数

1.2.1、没有参数

如果没有提供参数,那么新创建的 Date 对象表示现在的日期和时间。

1.2.2、一个参数

1.2.2.1、value

一个 Unix 时间戳(Unix Time Stamp),它是一个整数值,表示自 1970 年 1 月 1 日 00:00:00 UTC(the Unix epoch)以来的毫秒数,忽略了闰秒。请注意大多数 Unix 时间戳功能仅精确到最接近的秒。

1.2.2.2、dateString时间戳字符串

表示日期的字符串值。该字符串应该能被 Date.parse() 正确方法识别

1.2.3、大于1个参数

至少提供了年份与月份,没有提供的成员将使用最小可能值。

当 Date 作为构造函数调用并传入多个参数时,如果数值大于合理范围时(如月份为 13 或者分钟数为 70),相邻的数值会被调整。比如 new Date(2013, 13, 1) 等于 new Date(2014, 1, 1),它们都表示日期 2014-02-01(注意月份是从 0 开始的)

1.2.3.1、year

表示年份的整数值。 0 到 99 会被映射至 1900 年至 1999 年,其它值代表实际年份。

1.2.3.2、monthIndex

表示月份的整数值,从 0(1 月)到 11(12 月)。

1.2.3.3、date【可选】

表示一个月中的第几天的整数值,从 1 开始。默认值为 1。

1.2.3.4、hours 【可选】

表示一天中的小时数的整数值 (24 小时制)。默认值为 0(午夜)。

1.2.3.5、minutes 【可选】

表示一个完整时间(如 01:10:00)中的分钟部分的整数值。默认值为 0。

1.2.3.6、seconds 【可选】

表示一个完整时间(如 01:10:00)中的秒部分的整数值。默认值为 0。

1.2.3.7、milliseconds 【可选】

表示一个完整时间的毫秒部分的整数值。默认值为 0。

2、Date对象属性

2.1、Date.length

Date.length 的值是 7。这是该构造函数可接受的参数个数。

3、Date对象方法

3.1、Date.now()

3.1.1、概述

Date.now() 方法返回自 1970 年 1 月 1 日 00:00:00 (UTC) 到当前时间的毫秒数。

3.1.2、语法

var timeInMs = Date.now();

3.1.3、返回值

一个 Number,表示自 UNIX 纪元开始(1970 年 1 月 1 日 00:00:00 (UTC))到当前时间的毫秒数。

3.1.4、向下兼容

if (!Date.now) {
    
    
	Date.now = function now() {
    
    
		return new Date().getTime();
	};
}

3.2、Date.parse()

3.2.1、概述

Date.parse() 方法解析一个表示某个日期的字符串,并返回从 1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的 UTC 时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如:2015-02-31),则返回值为 NaN。

3.2.2、语法

Date.parse(dateString)

3.2.3、参数

dateString:一个符合 RFC2822 或 ISO 8601 日期格式的字符串

3.2.4、返回值

一个表示从 1970-1-1 00:00:00 UTC 到给定日期字符串所表示时间的毫秒数的数值。如果参数不能解析为一个有效的日期,则返回NaN。

3.3、Date.UTC()

3.3.1、概述

Date.UTC() 方法接受的参数同日期构造函数接受最多参数时一样,返回从 1970-1-1 00:00:00 UTC 到指定日期的的毫秒数。

3.3.2、语法

Date.UTC(year,month[,date[,hrs[,min[,sec[,ms]]]]]) 

3.3.3、参数

year:1900 年后的某一年份。
month:0 到 11 之间的一个整数,表示月份。
date:1 到 31 之间的一个整数,表示某月当中的第几天。
hrs:0 到 23 之间的一个整数,表示小时。
min:0 到 59 之间的一个整数,表示分钟。
sec:0 到 59 之间的一个整数,表示秒。
ms:0 到 999 之间的一个整数,表示毫秒。

4、实例属性

4.1、Date.prototype.constructor

返回创建了实例的构造函数,默认是 Date 构造函数。

5、实例方法

5.1、getDate()

5.1.1、概述

根据本地时间,返回一个指定的日期对象为一个月中的哪一日(从 1–31)。

天数

5.1.2、语法

dateObj.getDate()

5.1.3、返回值

返回一个 1 到 31 的整数值。

5.1.4、示例

var Xmas95 = new Date("December 25, 1995 23:15:00");
var day = Xmas95.getDate();

alert(day); // 25

5.2、getDay()

5.2.1、概述

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

星期

5.2.2、语法

dateObj.getDay()

5.2.3、返回值

根据本地时间,返回一个 0 到 6 之间的整数值,代表星期几: 0 代表星期日, 1 代表星期一,2 代表星期二, 依次类推。

5.2.4、示例

var Xmas95 = new Date("December 25, 1995 23:15:30");
var weekday = Xmas95.getDay();

console.log(weekday); // 1

5.3、getFullYear()

5.3.1、概述

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

5.3.2、语法

dateObj.getFullYear()

5.3.3、返回值

根据当地时间,返回一个对应于给定日期的年份数字。

5.3.4、示例

var today = new Date();
var year = today.getFullYear();

5.4、getHours()

5.4.1、概述

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

5.4.2、语法

dateObj.getHours()

5.4.3、返回值

返回一个 0 到 23 之间的整数值。

5.4.4、示例

var Xmas95 = new Date("December 25, 1995 23:15:00");
var hours = Xmas95.getHours();

alert(hours); // 23

5.5、getMilliseconds()

5.5.1、概述

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

5.5.2、语法

dateObj.getMilliseconds()

5.5.3、返回值

返回一个 0 到 999 的整数。

5.5.4、示例

var ms;
Today = new Date();
ms = Today.getMilliseconds();

5.6、getMinutes()

5.6.1、概述

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

5.6.2、语法

dateObj.getMinutes()

5.6.3、返回值

返回一个 0 到 59 的整数值。

5.6.4、示例

var Xmas95 = new Date("December 25, 1995 23:15:00");
var minutes = Xmas95.getMinutes();

5.7、getMonth()

5.7.1、概述

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

5.7.2、语法

dateObj.getMonth()

5.7.3、返回值

返回一个 0 到 11 的整数值: 0 代表一月份,1 代表二月份, 2 代表三月份,依次类推。

5.7.4、示例

var Xmas95 = new Date("December 25, 1995 23:15:30");
var month = Xmas95.getMonth();

console.log(month); // 11

5.8、getSeconds()

5.8.1、概述

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

5.8.2、语法

dateObj.getSeconds()

5.8.3、返回值

该方法返回一个 0 到 59 的整数值。

5.8.4、示例

var Xmas95 = new Date("December 25, 1995 23:15:30");
var secs = Xmas95.getSeconds();

5.9、getTime()

5.9.1、概述

返回一个时间的格林威治时间数值

功能和 valueOf() 方法一样。

5.9.2、语法

dateObj.getTime() 

5.9.3、返回值

一个数值,表示从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC,即协调世界时)距离该日期对象所代表时间的毫秒数。

5.9.4、示例

var birthday = new Date(1991, 9, 17);
var copy = new Date();
copy.setTime(birthday.getTime());

5.10、getTimezoneOffset()

5.10.1、概述

返回协调世界时(UTC)相对于当前时区的时间差值,单位为分钟。

5.10.2、语法

dateObj.getTimezoneOffset()

5.10.3、返回值

时区偏差(time-zone offset)表示协调世界时(UTC)与本地时区之间的差值,单位为分钟。需要注意的是如果本地时区后于协调世界时,则该差值为正值,如果先于协调世界时则为负值。例如你所在时区为 UTC+10(澳大利亚东部标准时间),将会返回 -600。对于同一个时区,夏令时(Daylight Saving Time)将会改变这个值。

5.10.4、示例

var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;

5.11、getUTCDate()

5.11.1、概述

以世界时为标准,返回一个指定的日期对象为一个月中的第几天

5.11.2、语法

dateObj.getUTCDate()

5.11.3、返回值

返回一个 1 到 31 的整数值

5.11.4、示例

var today = new Date();
var day = today.getUTCDate();

5.12、getUTCDay()

5.12.1、概述

以世界时为标准,返回一个指定的日期对象为一星期中的第几天,其中 0 代表星期天。

5.12.2、语法

dateObj.getUTCDay()

5.12.3、返回值

返回一个对应一星期中第几天的整数:0 代表星期天,1 代表星期一,2 代表星期二,依次类推。

5.12.4、示例

var today = new Date();
var weekday = today.getUTCDay();

5.13、getUTCFullYear()

5.13.1、概述

以世界时为标准,返回一个指定的日期对象的年份。

5.13.2、语法

dateObj.getUTCFullYear()

5.13.3、返回值

返回一个绝对数值,符合 Year-2000 标准,例如 1995。

5.13.4、示例

var today = new Date();
var year = today.getUTCFullYear();

5.14、getUTCHours()

5.14.1、概述

以世界时为标准,返回一个指定的日期对象的小时数。

5.14.2、语法

dateObj.getUTCHours()

5.14.3、返回值

返回一个 0 到 23 的整数。

5.14.4、示例

var today = new Date();
var hours = today.getUTCHours();

5.15、getUTCMilliseconds()

5.15.1、概述

以世界时为标准,返回一个指定的日期对象的毫秒数。

5.15.2、语法

dateObj.getUTCMilliseconds()

5.15.3、返回值

返回一个 0 到 999 的整数。

5.15.4、示例

var today = new Date();
var milliseconds = today.getUTCMilliseconds();

5.16、getUTCMinutes()

5.16.1、概述

以世界时为标准,返回一个指定的日期对象的分钟数。

5.16.2、语法

dateObj.getUTCMinutes()

5.16.3、返回值

返回一个 0 到 59 的整数。

5.16.4、示例

var today = new Date();
var minutes = today.getUTCMinutes();

5.17、getUTCMonth()

5.17.1、概述

以世界时为标准,返回一个指定的日期对象的月份,它是从 0 开始计数的(0 代表一年的第一个月)。

5.17.2、语法

dateObj.getUTCMonth()

5.17.3、示例

返回一个 0 到 11 的整数,分别对应以下月份:0 代表一月,1 代表二月,2 代表三月,依次类推。

5.17.4、示例

var today = new Date();
var month = today.getUTCMonth();

5.18、getUTCSeconds()

5.18.1、概述

以世界时为标准,返回一个指定的日期对象的秒数。

5.18.2、语法

dateObj.getUTCSeconds()

5.18.3、返回值

返回一个 0 到 59 的整数。

5.18.4、示例

var today = new Date();
var seconds = today.getUTCSeconds();

5.19、setDate()

5.19.1、概述

根据本地时间来指定一个日期对象的天数。

5.19.2、语法

dateObj.setDate(dayValue)

5.19.3、参数

dayValue:一个整数,表示该月的第几天。

如果 dayValue 超出了月份的合理范围,setDate 将会相应地更新 Date 对象。

如果 dayValue 被设置为负数,日期会设置为上个月最后一天往前数这个负数绝对值天数后的日期。-1 会设置为上月最后一天的前一天(译者注:例如当前为 4 月,如果 setDate(-2),则为 3 月 29 日)

5.19.4、示例

var theBigDay = new Date(1962, 6, 7); // 1962-07-07
theBigDay.setDate(24); // 1962-07-24
theBigDay.setDate(32); // 1962-08-01

5.20、setFullYear()

5.20.1、概述

根据本地时间为一个日期对象设置年份。

5.20.2、语法

dateObj.setFullYear(yearValue[, monthValue[, dayValue]])

5.20.3、参数

yearValue:指定年份的整数值,例如 1995。
monthValue:一个 0 到 11 之间的整数值,表示从一月到十二月。
dayValue:一个 1 到 31 之间的整数值,表示月份中的第几天。如果你指定了 dayValue 参数,就必须同时指定 monthValue。

如果没有指定 monthValue 和 dayValue 参数,将会使用 getMonth 和getDate 方法的返回值。

如果有一个参数超出了合理的范围,setFullYear 方法会更新其他参数值,日期对象的日期值也会被相应更新。

5.20.4、示例

var theBigDay = new Date();
theBigDay.setFullYear(1997);

5.21、setHours()

5.21.1、概述

根据本地时间为一个日期对象设置小时数,返回从 1970-01-01 00:00:00 UTC 到更新后的 日期 对象实例所表示时间的毫秒数。

5.21.2、语法

dateObj.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])

JavaScript 1.3 版本之前

dateObj.setHours(hoursValue) 

5.21.3、参数

hoursValue:一个 0 到 23 的整数,表示小时。
minutesValue:一个 0 到 59 的整数,表示分钟。
secondsValue:一个 0 到 59 的整数,表示秒数。如果指定了 secondsValue 参数,则必须同时指定 minutesValue 参数。
msValue:一个 0 到 999 的数字,表示微秒数,如果指定了 msValue 参数,则必须同时指定 minutesValue 和 secondsValue 参数。

如果不指定 minutesValue,secondsValue 和 msValue 参数,则会使用getMinutes(),getSeconds() 和getMilliseconds() 方法的返回值。

如果有一个参数超出了合理范围,setHours 会相应地更新日期对象中的日期信息。

5.21.4、示例

var theBigDay = new Date();
theBigDay.setHours(7);

5.22、setMilliseconds()

5.22.1、概述

根据本地时间设置一个日期对象的豪秒数。

5.22.2、语法

dateObj.setMilliseconds(millisecondsValue)

5.22.3、参数

millisecondsValue:一个 0 到 999 的数字,表示豪秒数。

如果指定的数字超出了合理范围,则日期对象的时间信息会被相应地更新。

5.22.4、示例

var theBigDay = new Date();
theBigDay.setMilliseconds(100);

5.23、setMinutes()

5.23.1、概述

根据本地时间为一个日期对象设置分钟数。

5.23.2、语法

dateObj.setMinutes(minutesValue[, secondsValue[, msValue]])

JavaScript 1.3 之前版本

dateObj.setMinutes(minutesValue)

5.23.3、语法

minutesValue:一个 0 到 59 的整数,表示分钟数。
secondsValue:一个 0 到 59 的整数,表示秒数。如果指定了 secondsValue 参数,则必须同时指定 minutesValue 参数。
msValue:一个 0 到 999 的数字,表示微秒数,如果指定了 msValue 参数,则必须同时指定 minutesValue 和secondsValue 参数。

如果没有指定 secondsValue 和 msValue 参数,就会使用 getSeconds() 和 getmilliseconds() 方法的返回值。

如果有一个指定的参数超出了合理范围,setMinutes 会相应地更新日期对象中的时间信息。

5.23.4、示例

var theBigDay = new Date();
theBigDay.setMinutes(45);

5.24、setMonth()

5.24.1、概述

根据本地时间为一个日期对象设置月份。

5.24.2、语法

dateObj.setMonth(monthValue[, dayValue])

JavaScript 1.3 版本之前

dateObj.setMonth(monthValue)

5.24.3、参数

monthValue:介于 0 到 11 之间的整数(表示一月到十二月)。
dayValue:从 1 到 31 之间的整数,表示月份中的第几天。0 为上个月最后一天

如果不指定 dayValue 参数,就会使用 getDate 方法的返回值。

如果有一个指定的参数超出了合理范围,setMonth 会相应地更新日期对象中的日期信息。

5.24.4、返回值

基于 1 January 1970 00:00:00 UTC 开始计算的毫秒数

5.24.5、示例

var theBigDay = new Date();
theBigDay.setMonth(6);

5.25、setSeconds()

5.25.1、概述

根据本地时间设置一个日期对象的秒数。

5.25.2、语法

dateObj.setSeconds(secondsValue[, msValue])

JavaScript 1.3 之前版本

dateObj.setSeconds(secondsValue)

5.25.3、参数

secondsValue:一个 0 到 59 的整数。
msValue:一个 0 到 999 的数字,表示微秒数。

如果没有指定 msValue 参数,就会使用 getMilliseconds() 方法的返回值。

如果一个参数超出了合理范围, setSeconds 方法会相应地更新日期对象的时间信息。

5.25.4、示例

var theBigDay = new Date();
theBigDay.setSeconds(30)

5.26、setTime()

5.26.1、概述

以一个表示从 1970-1-1 00:00:00 UTC 计时的毫秒数为来为 Date 对象设置时间。

5.26.2、语法

dateObj.setTime(timeValue)

5.26.3、参数

timeValue:一个整数,表示从 1970-1-1 00:00:00 UTC 开始计时的毫秒数。

使用 setTime 方法用来把一个日期时间赋值给另一个 Date 对象。

5.26.4、返回值

UTC 1970 年 1 月 1 日 00:00:00 与更新日期之间的毫秒数(实际上是自变量的值)。

5.26.5、示例

theBigDay = new Date("July 1, 1999");
sameAsBigDay = new Date();
sameAsBigDay.setTime(theBigDay.getTime());

5.27、setUTCDate()

5.27.1、概述

根据全球时间设置特定 date 对象的日期。

5.27.2、语法

dateObj.setUTCDate(dayValue)

5.27.3、参数

dayValue:一个 1-31 的整形数字,用来指定日期。

如果你指定的参数超出了范围,setUTCDate() 会尝试更新对应的Date 中的日期信息。

5.27.4、示例

var theBigDay = new Date();
theBigDay.setUTCDate(20);

5.28、setUTCFullYear()

5.28.1、概述

根据世界标准时间为一个具体日期设置年份。

5.28.2、语法

dateObj.setUTCFullYear(yearValue[, monthValue[, dayValue]])

5.28.3、参数

yearValue:指定年份整数值,例如,1995
monthValue:可选。指定一个 0-11 之间的整数值,代表从一月到十二月。
dayValue:可选。指定一个 1-31 之间的整数值,代表月份中的第几天。如果你指定了 dayValue 参数,那么你必须指定 monthValue 参数。

如果你没有指定具体的 monthValue 和 dayValue,将会使用 getUTCMonth 和 getUTCDate 方法的返回值。

如果你指定的参数超出了期待范围,setUTCFullYear() 方法将会根据 Date 对象,更新其他参数和日期信息。

5.28.4、示例

var theBigDay = new Date();
theBigDay.setUTCFullYear(1997);

5.29、setUTCHours()

5.29.1、概述

根据通用时间设置指定日期的小时数,并返回从1970年1月1日00:00:00 UTC到更新的date实例所表示的时间的毫秒数。

5.29.2、语法

dateObj.setUTCHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])

5.29.3、参数

hoursValue:表示小时的整数,取值 0 到 23 之间。
minutesValue:可选参数。表示分钟的整数,取值 0 到 59 之间。
secondsValue:可选参数。表示秒数的整数,取值 0 到 59 之间。如果指定了该参数,就要同时指定minutesValue 这个参数。
msValue:可选参数。表示毫秒的整数,取值 0 到 999 之间。如果指定了该参数,就要指定minutesValue 和 secondsValue 这两个参数。

如果不指定 minutesValue,secondsValue 和 msValue 参数,则会使用getMinutes(),getSeconds() 和getMilliseconds() 方法的返回值。

如果有一个参数超出了合理范围,setUTCHours 会相应地更新日期对象中的日期信息。

5.29.4、返回值

返回从 1970-01-01 00:00:00 UTC 到更新后的日期所表示时间的毫秒数。

5.29.5、示例

var theBigDay = new Date();
theBigDay.setUTCHours(8);

5.30、setUTCMilliseconds()

5.30.1、概述

根据世界时来设置指定时间的毫秒数。

5.30.2、语法

dateObj.setUTCMilliseconds(millisecondsValue)

5.30.3、参数

millisecondsValue:0 - 999 之间的数值,代表毫秒数。

如果传递的参数超出了指定的范围,setUTCMilliseconds() 方法会相应地尝试更新储存在 Date 的时间信息。

5.30.4、返回值

返回更新后的时间距 1970 年 1 月 1 日 00:00:00 (UTC) 的毫秒数。

5.30.5、示例

var theBigDay = new Date();
theBigDay.setUTCMilliseconds(500);

5.31、setUTCMinutes()

5.31.1、概述

根据世界协调时(UTC)来设置指定日期的分钟数。

5.31.2、语法

dateObj.setUTCMinutes(minutesValue[, secondsValue[, msValue]])

5.13.3、参数

minutesValue:必填,表示要设置的分钟数,是一个介于 0 和 59 之间的整数。
secondsValue:可选参数,表示要设置的秒数,同样也是一个介于 0 和 59 之间的整数,如果你传入了这个参数,那么你就必须要传入上一个参数(minutesValue)。
msValue:可选参数,表示要设置的毫秒数,这是一个介于 0 和 999 之间的数字,如果你传入了这个参数,那么你就必须要传入前面两个参数(minutesValue和secondsValue)。

5.31.4、返回值

返回从 UTC 时间 1970 年 1 月 1 日 0 时 0 分 0 秒至设置后的时间的毫秒数。

如果你没有传入后两个参数(minutesValue和msValue),这两个参数会分别使用getUTCSeconds()和getUTCMilliseconds()这两个方法返回的值。

如果你传入的参数值在上文所述范围之外的话,setUTCMinutes()方法会尝试修改日期对象中的其他信息。

5.31.5、示例

var theBigDay = new Date();
theBigDay.setUTCMinutes(43);

5.32、setUTCMonth()

5.32.1、概述

根据通用的时间来设置一个准确的月份。

5.32.2、语法

dateObj.setUTCMonth(monthValue[, dayValue])

5.32.3、参数

monthValue:一个 0-11 的整数,代表 1 月到 12 月。
dayValue:可选参数:一个 1-31 的整数,代表一个月的天数。

如果你没有明确书写dayValue 这个参数,那么就会从getUTCDate() 方法返回对应的数值。

如果你写了一个超过在规定的范围内的参数. setUTCMonth() 就会试图相应的更新时间信息在 Data 对象中。

5.32.4、返回值

这个数值是从 1970 年 1 月 1 号 00:00:00 到当前时间的毫秒数(国际通用时间)

5.32.5、示例

var theBigDay = new Date();
theBigDay.setUTCMonth(11);

5.33、setUTCSeconds()

5.33.1、概述

为一个依据国际通用时间的特定日期设置秒数。

5.33.2、语法

dateObj.setUTCSeconds(secondsValue[, msValue])

5.33.3、参数

secondsValue:一个在 0 到 59 之间的整数,表示秒数。
msValue:可选参数。一个 0 到 999 之间的数字,代表毫秒数。

如果你没有设置 msValue 参数的值, 那么返回的值来自getUTCMilliseconds() 方法。

如果你指定的值超出了范围,setUTCSeconds() 因此会更新Date 对象中 date 的相关信息 .

5.33.4、返回值

一个毫秒数,表示从国际通用时间 1970 年 00:00:00 到设置的时间值之间的时间跨度。

5.33.5、示例

var theBigDay = new Date();
theBigDay.setUTCSeconds(20);

5.34、toDateString()

5.34.1、概述

以美式英语和人类易读的形式返回一个日期对象日期部分的字符串。

5.34.2、语法

dateObj.toDateString()

5.34.3、描述

Date 对象实例引用一个具体的时间点。调用 toString 方法会以美式英语和人类易读的形式返回日期对象的格式化字符串。在 SpiderMonkey 里,该字符串由日期部分(年月日)和其后的时间部分(时分秒及时区)组成。有时需要获取日期部分的字符串,这可以由 toDateString 方法完成。

5.34.4、示例

var d = new Date(1993, 6, 28, 14, 39, 7);

println(d.toString()); // prints Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)
println(d.toDateString()); // prints Wed Jul 28 1993

5.35、toISOString()

5.35.1、概述

返回一个 ISO(ISO 8601 Extended Format)格式的字符串: YYYY-MM-DDTHH:mm:ss.sssZ。时区总是 UTC(协调世界时),加一个后缀“Z”标识。

5.35.2、语法

dateObj.toISOString()

5.35.3、示例

var today = new Date("05 October 2011 14:48 UTC");
alert(today.toISOString()); // 返回 2011-10-05T14:48:00.000Z

5.35.4、向下兼容

if (!Date.prototype.toISOString) {
    
    
	(function () {
    
    
		function pad(number) {
    
    
			if (number < 10) {
    
    
				return "0" + number;
			}
			return number;
		}

		Date.prototype.toISOString = function () {
    
    
			return this.getUTCFullYear() + "-" + pad(this.getUTCMonth() + 1) + "-" + pad(this.getUTCDate()) + "T" + pad(this.getUTCHours()) + ":" + pad(this.getUTCMinutes()) + ":" + pad(this.getUTCSeconds()) + "." + (this.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + "Z";
		};
	})();
}

5.36、toJSON()

5.36.1、概述

返回 Date 对象的字符串形式。

5.36.2、语法

dateObj.toJSON()

5.36.3、描述

Date 实例引用一个具体的时间点。 调用 toJSON() 返回一个 JSON 格式字符串 (使用 toISOString()),表示该日期对象的值。默认情况下,这个方法常用于 JSON序列化Date对象。

5.36.4、示例

var date = new Date();
console.log(date); //Thu Nov 09 2017 18:54:04 GMT+0800 (中国标准时间)

var jsonDate = date.toJSON();
console.log(jsonDate); //"2017-11-09T10:51:11.395Z"

var backToDate = new Date(jsonDate);
console.log(backToDate); //Thu Nov 09 2017 18:54:04 GMT+0800 (中国标准时间)

5.37、toLocaleDateString()

5.37.1、概述

返回该日期对象日期部分的字符串,该字符串格式因不同语言而不同。新增的参数 locales 和 options 使程序能够指定使用哪种语言格式化规则,允许定制该方法的表现(behavior)。在旧版本浏览器中, locales 和 options 参数被忽略,使用的语言环境和返回的字符串格式是各自独立实现的。

5.37.2、语法

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

5.37.3、示例

没有指定语言环境(locale)时,返回一个使用默认语言环境和格式设置(options)的格式化字符串。

var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));

// toLocaleDateString without arguments depends on the implementation,
// the default locale, and the default time zone
date.toLocaleDateString();
// → "12/11/2012" if run in en-US locale with time zone America/Los_Angeles

5.37.3.1、例子:检测 locales 和 options 参数支持情况

locales 和 options 参数不是所有的浏览器都支持。为了检测一种实现环境(implementation)是否支持它们,可以使用不合法的语言标签,如果实现环境支持该参数,则会抛出一个 RangeError 异常,反之会忽略参数。

function toLocaleDateStringSupportsLocales() {
    
    
    try {
    
    
        new Date().toLocaleDateString("i");
    } catch (e) {
    
    
        return e​.name === "RangeError";
    }
    return false;
}

5.37.3.2、例子:使用locales

下例展示了本地化日期格式的一些变化。为了在应用的用户界面得到某种语言的日期格式,必须确保使用 locales 参数指定了该语言(可能还需要设置某些回退语言)。

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

// formats below assume the local time zone of the locale;
// America/Los_Angeles for the US

// US English uses month-day-year order
alert(date.toLocaleDateString("en-US"));
// → "12/19/2012"

// British English uses day-month-year order
alert(date.toLocaleDateString("en-GB"));
// → "20/12/2012"

// Korean uses year-month-day order
alert(date.toLocaleDateString("ko-KR"));
// → "2012. 12. 20."

// Arabic in most Arabic speaking countries uses real Arabic digits
alert(date.toLocaleDateString("ar-EG"));
// → "٢٠‏/١٢‏/٢٠١٢"

// for Japanese, applications may want to use the Japanese calendar,
// where 2012 was the year 24 of the Heisei era
alert(date.toLocaleDateString("ja-JP-u-ca-japanese"));
// → "24/12/20"

// when requesting a language that may not be supported, such as
// Balinese, include a fallback language, in this case Indonesian
alert(date.toLocaleDateString(["ban", "id"]));
// → "20/12/2012"

5.37.3.3、例子:使用options

可以使用 options 参数来自定义 toLocaleDateString 方法返回的字符串。

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

// request a weekday along with a long date
var options = {
    
     weekday: "long", year: "numeric", month: "long", day: "numeric" };
alert(date.toLocaleDateString("de-DE", options));
// → "Donnerstag, 20. Dezember 2012"

// an application may want to use UTC and make that visible
options.timeZone = "UTC";
options.timeZoneName = "short";
alert(date.toLocaleDateString("en-US", options));
// → "Thursday, December 20, 2012, GMT"

5.37.4、性能

当格式化大量日期时,最好创建一个 Intl.DateTimeFormat 对象,然后使用该对象 format 属性提供的方法。

5.38、toLocaleString()

5.38.1、概述

返回该日期对象的字符串,该字符串格式因不同语言而不同。新增的参数 locales 和 options 使程序能够指定使用哪种语言格式化规则,允许定制该方法的表现(behavior)。在旧版本浏览器中, locales 和 options 参数被忽略,使用的语言环境和返回的字符串格式是各自独立实现的。

5.38.2、语法

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

5.38.3、返回值

根据当地语言规定返回代表着时间的字符串。

5.38.4、示例

没有指定语言环境(locale)时,返回一个使用默认语言环境和格式设置(options)的格式化字符串。

var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));

// toLocaleString 不包含参数的返回值取决于实现,
// 默认的区域 (locale),和默认的时区 (time zone)
date.toLocaleString();
// → 如果是在 en-US 区域和 America/Los_Angeles 时区运行返回值为"12/11/2012, 7:00:00 PM"

5.38.4.1、例子:检测 locales 和 options 参数支持情况

locales 和 options 参数不是所有的浏览器都支持。为了检测一种实现环境(implementation)是否支持它们,可以使用不合法的语言标签,如果实现环境支持该参数,则会抛出一个 RangeError 异常,反之会忽略参数。

function toLocaleStringSupportsLocales() {
    
    
    try {
    
    
        new Date().toLocaleString("i");
    } catch (e) {
    
    
        return e​.name === "RangeError";
    }
    return false;
}

5.38.4.2、例子:使用 locales 参数

下例展示了本地化日期格式的一些变化。为了在应用的用户界面得到某种语言的日期和时间格式,必须确保使用 locales 参数指定了该语言(可能还需要设置某些回退语言)。

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

//假定本地时区是 America/Los_Angeles(美国时区)
//en-US(美利坚英语) 使用 month-day-year 的顺序展示年月日
alert(date.toLocaleString("en-US"));
// → "12/19/2012, 7:00:00 PM"

// en-GB(不列颠英语) 使用 day-month-year 顺序展示年月日
alert(date.toLocaleString("en-GB"));
// → "20/12/2012 03:00:00"

// 韩语使用 year-month-day 顺序展示年月日
alert(date.toLocaleString("ko-KR"));
// → "2012. 12. 20. 오후 12:00:00"

// 大多数阿拉伯语国家的阿拉伯语使用阿拉伯数字
alert(date.toLocaleString("ar-EG"));
// → "٢٠‏/١٢‏/٢٠١٢ ٥:٠٠:٠٠ ص"

//在日本,应用可能想要使用日本日历,
//2012 是平成 24 年(平成是是日本天皇明仁的年号,由 1989 年 1 月 8 日起开始计算直至现在)
alert(date.toLocaleString("ja-JP-u-ca-japanese"));
// → "24/12/20 12:00:00"

//当请求一个语言可能不支持,如巴厘 (ban),若有备用的语言印尼语 (id),
//那么将使用印尼语 (id)
alert(date.toLocaleString(["ban", "id"]));
// → "20/12/2012 11.00.00"

5.38.4.3、例子:使用 options 参数

可以使用 options 参数来自定义 toLocaleString 方法返回的字符串。

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

//请求参数 (options) 中包含参数星期 (weekday),并且该参数的值为长类型 (long)
var options = {
    
     weekday: "long", year: "numeric", month: "long", day: "numeric" };
alert(date.toLocaleString("de-DE", options));
// → "Donnerstag, 20. Dezember 2012"

//一个应用使用 世界标准时间 (UTC),并且 UTC 使用短名字 (short) 展示
options.timeZone = "UTC";
options.timeZoneName = "short"; //若不写这一行那么仍然显示的是世界标准时间;但是 GMT 三个字母不会显示
alert(date.toLocaleString("en-US", options));
// → "Thursday, December 20, 2012, GMT"

// 使用 24 小时制
alert(date.toLocaleString("en-US", {
    
     hour12: false }));
// → "12/19/2012, 19:00:00"

5.38.5、性能

当格式化大量日期时,最好创建一个 Intl.DateTimeFormat 对象,然后使用该对象 format 属性提供的方法。

5.39、toLocaleTimeString()

5.39.1、概述

返回该日期对象时间部分的字符串,该字符串格式因不同语言而不同。新增的参数 locales 和 options 使程序能够指定使用哪种语言格式化规则,允许定制该方法的表现(behavior)。在旧版本浏览器中, locales 和 options 参数被忽略,使用的语言环境和返回的字符串格式是各自独立实现的。

5.39.2、语法

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

5.39.3、示例

没有指定语言环境(locale)时,返回一个使用默认语言环境和格式设置(options)的格式化字符串。

var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));

// toLocaleTimeString without arguments depends on the implementation,
// the default locale, and the default time zone
alert(date.toLocaleTimeString());
// → "7:00:00 PM" if run in en-US locale with time zone America/Los_Angeles

5.39.3.1、例子:检测 locales 和 options 支持情况

locales 和 options 参数不是所有的浏览器都支持。为了检测一种实现环境(implementation)是否支持它们,可以使用不合法的语言标签,如果实现环境支持该参数,则会抛出一个 RangeError 异常,反之会忽略参数。

function toLocaleTimeStringSupportsLocales() {
    
    
    try {
    
    
        new Date().toLocaleTimeString("i");
    } catch (e) {
    
    
        return e​.name === "RangeError";
    }
    return false;
}

5.39.3.2、例子:使用 locales 参数

下例展示了本地化时间格式的一些变化。为了在应用的用户界面得到某种语言的时间格式,必须确保使用 locales 参数指定了该语言(可能还需要设置某些回退语言)。

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

// formats below assume the local time zone of the locale;
// America/Los_Angeles for the US

// US English uses 12-hour time with AM/PM
alert(date.toLocaleTimeString("en-US"));
// → "7:00:00 PM"

// British English uses 24-hour time without AM/PM
alert(date.toLocaleTimeString("en-GB"));
// → "03:00:00"

// Korean uses 12-hour time with AM/PM
alert(date.toLocaleTimeString("ko-KR"));
// → "오후 12:00:00"

// Arabic in most Arabic speaking countries uses real Arabic digits
alert(date.toLocaleTimeString("ar-EG"));
// → "٧:٠٠:٠٠ م"

// when requesting a language that may not be supported, such as
// Balinese, include a fallback language, in this case Indonesian
alert(date.toLocaleTimeString(["ban", "id"]));
// → "11.00.00"

5.39.3.3、例子:使用 options 参数

可以使用 options 参数来自定义 toLocaleTimeString 方法返回的字符串。

var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));

// an application may want to use UTC and make that visible
var options = {
    
     timeZone: "UTC", timeZoneName: "short" };
alert(date.toLocaleTimeString("en-US", options));
// → "3:00:00 AM GMT"

// sometimes even the US needs 24-hour time
alert(date.toLocaleTimeString("en-US", {
    
     hour12: false }));
// → "19:00:00"

5.39.4、性能

当格式化大量日期时,最好创建一个 Intl.DateTimeFormat 对象,然后使用该对象 format 属性提供的方法。

5.40、toString()

5.40.1、概述

返回一个字符串,表示该Date对象。

5.40.2、语法

dateObj.toString()

5.40.3、返回值

该 toString 方法总是返回一个美式英语日期格式的字符串。
当一个日期对象被用来作为文本值或用来进行字符串连接时,toString 方法会被自动调用。

toString() 是通用函数。如果不是Date实例,则 返回"Invalid Date"。

5.40.4、示例

var x = new Date();
myVar = x.toString(); // 把类似于下面格式的值赋给 myVar,
// Fri Apr 26 2019 11:46:17 GMT+0800 (中国标准时间)

5.41、toTimeString()

5.41.1、概述

以人类易读形式返回一个日期对象时间部分的字符串,该字符串以美式英语格式化。

5.41.2、语法

dateObj.toTimeString()

5.41.3、示例

var d = new Date(1993, 6, 28, 14, 39, 7);

println(d.toString()); // prints Wed Jul 28 1993 14:39:07 GMT-0600 (PDT)
println(d.toTimeString()); // prints 14:39:07 GMT-0600 (PDT)

5.42、toUTCString()

5.42.1、概述

把一个日期转换为一个字符串,使用 UTC 时区。

5.42.2、语法

dateObj.toUTCString()

5.42.3、返回值

返回使用 UTC 时区表示给定日期的字符串,返回值的格式可能随平台而变化。通常返回值是一个 RFC-1123 格式的时间戳,这是一个 RFC-822 时间戳的小幅更新版。

5.42.4、示例

var today = new Date();
var UTCstring = today.toUTCString();
// Mon, 03 Jul 2006 21:44:38 GMT

5.43、valueOf()

5.43.1、概述

返回一个 Date 对象的原始值。

5.43.2、语法

dateObj.valueOf()

5.43.3、返回值

从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC,即协调世界时)到该日期的毫秒数。

该方法通常在 JavaScript 内部被调用,而不是在代码中显式调用。

5.43.4、示例

var x = new Date(56, 6, 17);
var myVar = x.valueOf(); // assigns -424713600000 to myVar

后记

如果你感觉文章不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果你觉得该文章有一点点用处,可以给作者点个赞;\\*^o^*//
如果你想要和作者一起进步,可以微信扫描二维码,关注前端老L~~~///(^v^)\\\~~~
谢谢各位读者们啦(^_^)∠※!!!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_62277266/article/details/125711928