◆
JavaScript Date 对象创建与用法详解
概述
创建一个新 Date 对象
let now = new Date();
语法
new Date();new Date(value);new Date(dateString);new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds);year:表示年份的整数值。0到99会被映射至1900年至1999年,其它值代表实际年份。monthIndex:是从0开始计算的,这就意味着一月份为0,十二月份为11当Date作为构造函数调用并传入多个参数时,如果数值大于合理范围时(如月份为13或者分钟数为70), 相邻的数值会被调整。比如new Date(2013, 13, 1)等于new Date(2014, 1, 1),它们都表示日期2014-02-01(注意月份是从0开始的) 如果提供了至少两个参数,day默认是1
- 以一个函数的形式来调用
Date对象(即不使用new操作符)会返回一个代表当前日期和时间的字符串。
Date();
('Sat Nov 23 2019 10:15:03 GMT+0800 (中国标准时间)');
new Date();
// Sat Nov 23 2019 10:15:09 GMT+0800 (中国标准时间)
返回毫秒数
Date.UTC(year, monthIndex, day, hours, minutes, seconds, milliseconds)接受的参数同日期构造函数接受最多参数时一样,返回从1970-1-1 00:00:00 UTC到指定日期的的毫秒数。Date.now()
返回自1970年1月1日00:00:00UTC到当前时间的毫秒数。Date.parse()解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC到该日期对象(该日期对象的UTC时间)的毫秒数, 如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如:2015-02-31),则返回值为NaN。
Date.UTC(1970, 0, 1, 0, 0, 3); // 3000
Date.now(); // 1574475446412
Date.parse('Aug 9, 1995');
常用方法
getFullYear():根据本地时间,返回指定日期的年份,此方法替代getYear()。getMonth():根据本地时间,返回一个指定的日期对象的月份,为基于0的值(0表示一年中的第一月)。getDate():根据本地时间,返回一个指定的日期对象为一个月中的哪一日(从1--31)。getHours():根据本地时间,返回一个指定的日期对象的小时。getMinutes():根据本地时间,返回一个指定的日期对象的分钟数。getSeconds():根据本地时间,返回一个指定的日期对象的秒数。getMilliseconds(): 根据本地时间,返回一个指定的日期对象的毫秒数,返回一个0到999的整数。getDay():根据本地时间,返回一个具体日期中一周的第几天,0表示星期天。getTime():的返回值一个数值,表示从1970年1月1日0时0分0秒(UTC,即协调世界时)距离该日期对象所代表时间的毫秒数。getTimezoneOffset():方法返回协调世界时(UTC)相对于当前时区的时间差值,单位为分钟。如果本地时区晚于协调世界时,则该差值为正值,如果早于协调世界时则为负值。 例如你所在时区为UTC+10(澳大利亚东部标准时间),将会返回-600
new Date().getFullYear(); // 2019
new Date('Sat Nov 23 2019 12:20:08 GMT+0800 (中国标准时间)').getMonth(); // 10
new Date('Sat Nov 23 2019').getDate(); // 23
new Date('10 17, 03:16:00').getHours(); // 3
new Date('0, 03:12').getMinutes(); // 12
new Date('011111, 03:12:1').getSeconds(); // 1
new Date().getMilliseconds(); // 202
new Date('August 19, 1975 23:15:30').getDay(); // 2
new Date('Thu Jan 01 1970 00:00:00 GMT+0000').getTime(); // 0
new Date().getTimezoneOffset(); // -480
setFullYear(yearValue, monthValue, dayValue):根据本地时间为一个日期对象设置年份。setMonth(monthValue, dayValue):根据本地时间为一个设置年份的日期对象设置月份。setDate(dayValue):根据本地时间来指定一个日期对象的天数。一个整数,表示该月的第几天。如果为dayValue指定0,那么日期就会被设置为上个月的最后一天。setHours(hoursValue, minutesValue, secondsValue, msValue):根据本地时间为一个日期对象设置小时数,返回从1970-01-01 00:00:00 UTC到更新后的日期对象实例所表示时间的毫秒数。 如果dayValue被设置为负数,日期会设置为上个月最后一天往前数这个负数绝对值天数后的日期。-1会设置为上月最后一天的前一天(例如当前为4月,如果setDate(-2),则为3月29日)setMinutes(minutesValue, secondsValue, msValue):根据本地时间为一个日期对象设置分钟数。setSeconds(secondsValue, msValue):根据本地时间设置一个日期对象的秒数。setMilliseconds(msValue):根据本地时间设置一个日期对象的豪秒数。setTime():以一个表示从1970-1-1 00:00:00 UTC计时的毫秒数为来为Date对象设置时间。
tip
monthValue:一个 0 到 11 之间的整数值,表示从一月到十二月。 dayValue:一个 1 到 31 之间的整数值,表示月份中的第几天。 msValue:一个 0 到 999 的数字,表示微秒数
如果有一个参数超出了合理范围,setHours 会相应地更新日期对象中的日期信息。例如,如果为 secondsValue 指定了 100,则分钟会加 1,然后秒数使用 40。
// date 的值 Thu Aug 22 2019 23:15:30 GMT+0800 (中国标准时间)
var date = new Date('August 22, 2019 23:15:30');
// date 的值 Sat Aug 22 2020 23:15:30 GMT+0800 (中国标准时间)
date.setFullYear(2020);
// date 的值 Wed Mar 03 2021 23:15:30 GMT+0800 (中国标准时间)
date.setFullYear(2020, 14, 3);
// Thu Dec 03 2020 23:15:30 GMT+0800 (中国标准时间)
date.setMonth(-1);
theBigDay = new Date('July 1, 1999');
sameAsBigDay = new Date();
sameAsBigDay.setTime(theBigDay.getTime());
// sameAsBigDay => Thu Jul 01 1999 00:00:00 GMT+0800 (中国标准时间)
toLocaleString():返回该日期对象的字符串toLocaleDateString():返回该日期对象日期部分的字符串toLocaleTimeString():返回该日期对象时间部分的字符串toString:总是返回一个美式英语日期格式的字符串。toDateString():以美式英语和人类易读的形式返回一个日期对象日期部分的字符串。toTimeString():以人类易读形式返回一个日期对象时间部分的字符串,该字符串以美式英语格式化。toUTCString():把一个日期转换为一个字符串,使用 UTC 时区。toISOString():返回一个ISO格式的字符串:YYYY-MM-DDTHH:mm:ss.sssZ。时区总是UTC(协调世界时),加一个后缀“Z”标识。toJSON():返回Date对象的字符串形式。valueOf():返回以数值格式表示的一个Date对象的原始值,从1970年1月1日0时0分0秒(UTC,即协调世界时)到该日期对象所代表时间的毫秒数。
// "1993-7-28 14:39:07"
new Date(1993, 6, 28, 14, 39, 7).toLocaleString();
// "1993-7-28"
new Date(1993, 6, 28, 14, 39, 7).toLocaleDateString();
// "14:39:07"
new Date(1993, 6, 28, 14, 39, 7).toLocaleTimeString();
// "Wed Jul 28 1993 14:39:07 GMT+0800 (中国标准时间)"
new Date(1993, 6, 28, 14, 39, 7).toString();
// "Wed Jul 28 1993"
new Date(1993, 6, 28, 14, 39, 7).toDateString();
// "14:39:07 GMT+0800 (中国标准时间)"
new Date(1993, 6, 28, 14, 39, 7).toTimeString();
// "Wed, 28 Jul 1993 06:39:07 GMT"
new Date(1993, 6, 28, 14, 39, 7).toUTCString();
// "1993-07-28T06:39:07.000Z"
new Date(1993, 6, 28, 14, 39, 7).toISOString();
// "1993-07-28T06:39:07.000Z"
new Date(1993, 6, 28, 14, 39, 7).toJSON();
// 1574486342597
new Date().valueOf();
测量代码执行时间方法
var end, start, i;
start = new Date();
for (i = 0; i < 1000; i++) {
Math.sqrt(i);
}
end = new Date();
console.log('Operation took ' + (end.getTime() - start.getTime()) + ' msec');

还没有留言,来发表第一条吧~