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>

浙公网安备 33010602011771号