引 用 类 型
定义:引用类型是一种数据结构,用于将数据和功能组织在一起,引用类型有时候也被称为对象定义
Date类型
Date类型使用自 UTC(Coordinated Universal Time,国际协调时间)1970 年 1 月 1 日午夜(零时)开始经过的毫秒数来保存日期。
- 日期实例的创建
1. 使用 new 操作符和 Date 构造函数:new Date()
new Date()不传递参数,新创建的对象自动获得当前日期和时间
var time0 = new Date(); // 获取当前时间,格式为Fri Jun 14 2019 23:09:13 GMT+0800 (中国标准时间)
new Date()传入表示该日期的毫秒数,创建指定的日期和时间的日期对象
var time0 = 1560525082000; // Fri Jun 14 2019 23:11:22的毫秒数
var time1 = Date.UTC("Jun 14, 2004"); // 1560525082000
var time2 = Date.parse("Jun 14, 2004"); // 获取1087142400000
var time3 = "2019-06-14 23:11:22";
new Date(time0); // Fri Jun 14 2019 23:11:22 GMT+0800 (中国标准时间)
new Date(time1); // Fri Jun 14 2019 23:11:22 GMT+0800 (中国标准时间)
new Date(time2); // Fri Jun 14 2019 23:11:22 GMT+0800 (中国标准时间)
new Date(time3); // Fri Jun 14 2019 23:11:22 GMT+0800 (中国标准时间),后台调用Date.parse(time3)转化为毫秒
- 日期实例的方法
1. 日期格式化方法
var time = new Date();
time.toDateString(); // "Tue Jun 18 2019"
time.toTimeString(); // "21:42:20 GMT+0800 (中国标准时间)"
time.toLocaleDateString(); // "2019/6/18"
time.toLocaleTimeString(); // "下午9:42:20"
time.toUTCString(); // "Tue, 18 Jun 2019 13:42:20 GMT"
time.toGMTString(); // "Tue, 18 Jun 2019 13:42:20 GMT" 向后兼容
2. 日期/时间组件方法
var time = new Date(); // Tue Jun 18 2019 21:42:20 GMT+0800 (中国标准时间)
time.getTime(); // 1560865340459,返回表示日期的毫秒数;与 valueOf() 方法返回的值相同
time.setTime(1560865323459); // time为Tue Jun 18 2019 21:42:03 GMT+0800 (中国标准时间),以毫秒数设置日期,会改变整个日期
var time = new Date(); // Tue Jun 18 2019 22:19:46 GMT+0800 (中国标准时间)
time.getFullYear(); // 2019,取得4位数的年份(如2007而非仅07)
time.getUTCFullYear(); // 2019,返回UTC日期的4位数年份
time.setFullYear(2018); // time为Mon Jun 18 2018 22:19:46 GMT+0800 (中国标准时间),设置日期的年份。传入的年份值必须是4位数字
var time = new Date(); // Tue Jun 18 2019 22:21:29 GMT+0800 (中国标准时间)
time.getMonth(); // 5,返回日期中的月份,其中0表示一月,11表示十二月
time.getUTCMonth(); // 5,返回UTC日期中的月份,其中0表示一月,11表示十二月
time.setMonth(12); // time为Sat Jan 18 2020 22:21:29 GMT+0800 (中国标准时间),设置日期的月份。传入的月份值必须大于等于0,超过11则增加年份
time.setUTCMonth(12); // time为Mon Jan 18 2021 22:40:00 GMT+0800 (中国标准时间),设置日期的月份。传入的月份值必须大于等于0,超过11则增加年份
var time = new Date(); // Tue Jun 18 2019 22:23:20 GMT+0800 (中国标准时间)
time.getDate(); // 18,返回日期月份中的天数(1到31)
time.getUTCDate(); //18,返回日期utc月份中的天数(1到31)
time.setDate(17); // time为Mon Jun 17 2019 22:23:20 GMT+0800 (中国标准时间),返回日期月份中的天数(1到31)
time.setUTCDate(17); // time为Mon Jun 17 2019 22:23:20 GMT+0800 (中国标准时间),返回UTC日期月份中的天数(1到31)
var time = new Date(); // Tue Jun 18 2019 22:29:31 GMT+0800 (中国标准时间)
time.getDay(); // 2,返回日期中星期的星期几(其中0表示星期日,6表示星期六)
time.getUTCDay(); // 2,返回UTC日期中星期的星期几(其中0表示星期日,6表示星期六)
time.getHours(); // 22,返回日期中的小时数(0到23)
time.getUTCHours(); // 14,返回UTC日期中的小时数(0到23)
time.setHours(10); // time为Tue Jun 18 2019 10:29:31 GMT+0800 (中国标准时间),设置日期中的小时数。传入的值超过了23则增加月份中的天数
time.setUTCHours(); // time为Tue Jun 18 2019 18:29:31 GMT+0800 (中国标准时间),设置UTC日期中的小时数。传入的值超过了23则增加月份中的天数
var time = new Date(); // Tue Jun 18 2019 22:34:50 GMT+0800 (中国标准时间)
time.getMinutes(); // 34,返回日期中的分钟数(0到59)
time.getUTCMinutes(); // 34,返回UTC日期中的分钟数(0到59)
time.setMinutes(); // time为Tue Jun 18 2019 22:30:50 GMT+0800 (中国标准时间),设置日期中的分钟数。传入的值超过59则增加小时数
time.setUTCMinutes(); // time为Tue Jun 18 2019 22:30:50 GMT+0800 (中国标准时间),设置UTC日期中的分钟数。传入的值超过59则增加小时数
var time = new Date(); // Tue Jun 18 2019 22:38:02 GMT+0800 (中国标准时间)
time.getSeconds(); // 2, 返回日期中的秒数(0到59
time.getUTCSeconds(); // 2, 返回UTC日期中的秒数(0到59)
time.setSeconds(60); // time为Tue Jun 18 2019 22:39:00 GMT+0800 (中国标准时间),设置日期中的秒数。传入的值超过了59会增加分钟数
time.setUTCSeconds(60); // time为Tue Jun 18 2019 22:40:00 GMT+0800 (中国标准时间),设置UTC日期中的秒数。传入的值超过了59会增加分钟数
var time = new Date(); // Tue Jun 18 2019 22:38:02 GMT+0800 (中国标准时间)
time.getMilliseconds(); // 969
time.getUTCMilliseconds(); // 969
time.setMilliseconds(990); // 1560869096990,time为Tue Jun 18 2019 22:44:56 GMT+0800 (中国标准时间),设置日期中的毫秒数
time.setUTCMilliseconds(990); // 1560869096990,time为Tue Jun 18 2019 22:44:56 GMT+0800 (中国标准时间),设置UTC日期中的毫秒数
var time = new Date();
time.getTimezoneOffset(); // -480,返回本地时间与UTC时间相差的分钟数