JavaScript Date
Date对象的作用
在JavaScript
中,Date
由于方法实在是太多,所以这里不一一例举,而是只拿出常用的。
属性一览
属性 | 描述 |
---|---|
constructor | 返回对创建该对象的函数的引用 |
prototype | 允许向对象添加属性和方法 |
方法一览
方法 | 描述 |
---|---|
Date() | 返回当日的日期和时间 |
getDate() | 根据本地时从Date对象返回一个月中的某一天(1 ~ 31) |
getDay() | 根据本地时从Date对象返回一周中的某一天(1 ~ 6) |
getFullYear() | 根据本地时从 Date 对象以四位数字返回年份 |
getHours() | 根据本地时返回 Date 对象的小时 (0 ~ 23) |
getMilliseconds() | 根据本地时返回 Date 对象的毫秒(0 ~ 999) |
getMinutes() | 根据本地时返回 Date 对象的分钟 (0 ~ 59) |
getMonth() | 根据本地时从Date对象返回月份(1 ~ 11) |
getSeconds() | 根据本地时返回 Date 对象的秒数 (0 ~ 59) |
getTime() | 根据本地时返回 1970 年 1 月 1 日至今的毫秒数 |
getTimezoneOffset() | 返回本地时间与格林威治标准时间 (GMT) 的分钟差 |
getUTCDate() | 根据世界时从 Date 对象返回月中的一天 (1 ~ 31) |
getUTCDay() | 根据世界时从 Date 对象返回周中的一天 (0 ~ 6) |
getUTCFullYear() | 根据世界时从 Date 对象返回四位数的年份 |
getUTCHours() | 根据世界时返回 Date 对象的小时 (0 ~ 23) |
getUTCMilliseconds() | 根据世界时返回 Date 对象的毫秒(0 ~ 999) |
getUTCMinutes() | 根据世界时返回 Date 对象的分钟 (0 ~ 59) |
getUTCMonth() | 根据世界时从 Date 对象返回月份 (0 ~ 11) |
getUTCSeconds() | 根据世界时返回 Date 对象的秒钟 (0 ~ 59) |
getYear() | 弃用,返回在指定的日期根据当地时间。使用getFullYear()代替。 |
setDate() | 根据本地时设置 Date 对象中月的某一天 (1 ~ 31) |
setFullYear() | 根据本地时设置 Date 对象中的年份(四位数字) |
setHours() | 根据本地时设置 Date 对象中的小时 (0 ~ 23) |
setMilliseconds() | 根据本地时设置 Date 对象中的毫秒 (0 ~ 999) |
setMinutes() | 根据本地时设置 Date 对象中的分钟 (0 ~ 59) |
setMonth() | 根据本地时设置 Date 对象中月份 (0 ~ 11) |
setSeconds() | 根据本地时设置 Date 对象中的秒钟 (0 ~ 59) |
setTime() | 根据本地时以毫秒设置 Date 对象 |
setUTCDate() | 根据世界时设置 Date 对象中月份的一天 (1 ~ 31) |
setUTCFullYear() | 根据世界时设置 Date 对象中的年份(四位数字) |
setUTCHours() | 根据世界时设置 Date 对象中的小时 (0 ~ 23) |
setUTCMilliseconds() | 根据世界时设置 Date 对象中的毫秒 (0 ~ 999) |
setUTCMinutes() | 根据世界时设置 Date 对象中的分钟 (0 ~ 59) |
setUTCMonth() | 根据世界时设置 Date 对象中的月份 (0 ~ 11) |
setUTCSeconds() | 根据世界时设置 Date 对象中的秒钟 (0 ~ 59) |
setYear() | 弃用,设置为指定的日期根据当地时间。使用 setFullYear() 代替。 |
toDateString() | 把 Date 对象的日期部分转换为字符串 |
toGMTString() | 弃用,将日期转换为一个字符串,使用互联网格林尼治时间约定。使用 toUTCString() 代替。 |
toLocalDateString() | 根据本地时间格式,把 Date 对象的日期部分转换为字符串 |
toLocalFormat() | 将日期转换为一个字符串,使用格式化字符串。 |
toLocalString() | 根据本地时间格式,把 Date 对象转换为字符串 |
toLocalTimeString() | 根据本地时间格式,把 Date 对象的时间部分转换为字符串 |
toSource() | 返回一个字符串代表一个等价的日期对象的源码,您可以使用这个值来创建一个新的对象 |
toString() | 把 Date 对象转换为字符串 |
toTimeString() | 把 Date 对象的时间部分转换为字符串 |
toUCTString() | 根据世界时,把 Date 对象转换为字符串 |
valueOf() | 返回 Date 对象的原始值 |
静态方法
所谓静态方法即不用传值的方法。
方法 | 描述 |
---|---|
Date.parse() | 返回 1970 年 1 月 1 日午夜到指定日期(字符串)的毫秒数 |
Date.UTC() | 根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数 |
声明日期
以下例举的是常用的声明日期的方式。
<script>"use strict"; // 当前日期和时间 console.log(new Date()); // Tue Jul 28 2020 06:27:54 GMT+0800 (中国标准时间) // 获取时间戳,时间戳的意思是从1970年1月1日凌晨8点0分0秒开始距离现在所经历过的时间,单位是毫秒。 console.log((new Date()) * 1); // 1595889198251 // 获取一个字符串格式时间 console.log(new Date("2010-11-12")); // Fri Nov 12 2010 08:00:00 GMT+0800 (中国标准时间) // 填入参数,获取时间 年月日时分秒毫秒 console.log(new Date(2018, 4, 23, 12, 0, 12, 13)); // Wed May 23 2018 12:00:12 GMT+0800 (中国标准时间) //直接使用函数获取当前时间 console.log(Date()); console.log(typeof Date()); // string //获取当前时间戳单位毫秒 console.log(Date.now()); // 1595889198254 </script>
执行时间
常用且通用的一种计算方法。
<script>"use strict"; // 开始时间减去结束时间即可 const start = Date.now(); for (let i = 0; i < 2000000; i++) { } const end = Date.now(); console.log(end - start); </script>
控制台测试,这是Js
独特的方法,原理也是开始时间减去结束时间。
<script>"use strict"; console.time("testFor"); for (let i = 0; i < 20000000; i++) { } console.timeEnd("testFor"); // testFor: 13.82177734375ms </script>
类型转换
将日期转为数值类型就是转为时间戳格式,单位是毫秒。
<script>"use strict"; let time = new Date(); console.log(time * 1); // 时间戳 1595889846353 console.log(Number(time)); // number类型时间戳 1595889846353 console.log(time.valueOf()); // 时间戳 1595889846353 console.log(time.getTime()); // 时间戳 1595889846353 </script>
有时后台提供的日期为时间戳格式,下面是将时间戳转换为标准日期的方法
<script>"use strict"; const param = [1990, 2, 22, 13, 22, 19]; const date = new Date(...param); // 数组打散,相当于填参数了。 列表中的参数一一对应形参年月日时分秒毫秒 const timestamp = date.getTime(); // 获取时间戳 console.log(timestamp); // 638083339000 console.log(new Date(timestamp)); // Thu Mar 22 1990 13:22:19 GMT+0800 (中国标准时间) </script>
日期定位
获取到当前日期,并定位到后5天。
<script>"use strict"; let time = new Date(); time.setDate(time.getDate() + 5); console.log(time); // Sun Aug 02 2020 06:55:43 GMT+0800 (中国标准时间) </script>
时间格式化
有时候我们会觉得Js
提供给我们的格式不太好用,这个时候可以写一个函数自定义格式。
<script>// format定义了默认参数 function dateFormat(date, format = "YYYY-MM-DD HH:mm:ss") { const config = { YYYY: date.getFullYear(), // 获取年份 MM: date.getMonth() + 1, // 获取月份,月份+1是因为js中的月份是0-11 DD: date.getDate(), // 获取天数 HH: date.getHours(), // 获取小时 mm: date.getMinutes(), // 获取分 ss: date.getSeconds() // 获取秒 }; for (const key in config) { format = format.replace(key, config[key]); } return format; } console.log(dateFormat(new Date(), "YYYY年MM月DD日")); // 2020年7月28日 </script>
moment.js
Moment.js
是一个轻量级的JavaScript
时间库,它方便了日常开发中对时间的操作,提高了开发效率。
更多使用方法请访问中文官网
<script src="https://cdn.bootcss.com/moment.js/2.24.0/moment.min.js"></script>
获取当前时间
<script> console.log(moment().format("YYYY-MM-DD HH:mm:ss")); </script>
设置时间
<script> console.log(moment("2020-02-18 09:22:15").format("YYYY-MM-DD HH:mm:ss")); </script>
十天后的日期
<script> console.log(moment().add(10, "days").format("YYYY-MM-DD hh:mm:ss")); </script>