这是我参与8月更文挑战的第26天,活动详情查看:8月更文挑战
学习贵在坚持, 笔记是灵魂, 温故而知新, 时不时翻一翻, 回顾一下知识点, 加深记忆, 事半功倍!
前文我们学习了关于 JavaScript 中的 String 字符串对象`
今天来学习 JavaScript 中的 日期处理库 & Date对象
JavaScript 日期处理库推荐:
1. Moment.js
在日常项目开发中, 我们对于日期的处理, 之前用的比较多的日期封装库: moment.js
Moment.js 中文网 / 官网: momentjs.com
2. day.js 
现在推荐使用轻量化方案: 更轻量级别的库: day.js - dayjs.gitee.io
Day.js - 开源的 JS 时间日期处理库, 是一个仅 2kb 大小的轻量级 JavaScript 时间日期处理库,和 Moment.js 的 API 设计保持完全一样
Day.js 可以运行在 浏览器 和 Node.js 中。
dayjs().format() // 2021-08-27T23:16:05+08:00
dayjs().format('MMMM DD YYYY, h:mm:ss a') // August 27 2021, 11:16:05 pm
dayjs().format('dddd') // Friday
dayjs().format('MMM DDo YY') // Aug 27o 21
dayjs().format('YYYY [escaped] YYYY') // 2021 escaped 2021
安装使用:
yarn add dayjs # Yarn
npm install dayjs --save # npm
- Node.js 项目中使用:
var dayjs = require('dayjs')
//import dayjs from 'dayjs' // ES 2015
dayjs().format()
// 默认返回的是 ISO8601 格式字符串 "2021-08-27T22:59:19+08:00"
- 浏览器中使用
<script src="https://unpkg.com/dayjs@1.8.21/dayjs.min.js"></script>
<script>
console.log(dayjs().format())
</script>
JavaScript 日期 Date 对象
Date 函数
在项目开发中, 经常需要用到处理时间的逻辑, 比如各种奇奇怪怪的倒计时, 这里面潜在很多bug
JavaScript 的 Date 对象有很多方法, 但多数都是 getter 和 setter, 经常用到的也就是那么几个
| # | getter 方法 | setter 方法 |
|---|---|---|
| 1 | getDate | setDate |
| 2 | getDay | --- |
| 3 | getFullYear | setFullYear |
| 4 | getYear | setYear |
| 5 | getMonth | setMonth |
| 6 | getHours | setHours |
| 7 | getMilliseconds | setMilliseconds |
| 8 | getSeconds | setSeconds |
| 9 | getUTCDate | setUTCDate |
| 10 | getUTCDay | setUTCDay |
| ... | --- | --- |
| --- | 转换方法 | toDateString |
| --- | --- | toLocalString |
| --- | --- | toLocalDateString |
| --- | --- | toTimeString |
| --- | --- | toLocalTimeString |
| ... | ... | ... |
getMonth 方法的返回值是从 0 开始算的, 即 getMonth 的返回值范围是 0-11
而 getDate 方法的返回值是从 1 开始的, 范围为 1-31, 这种不一致也是经常出错的根源所在..
另外 也建议使用 getFullYear 和 setFullYear, 减少规避错误的发生
按照我们的编程思维, Date 函数应当是具有方便的属性的数据对象:
- year
- month
- day
- hour
- minute
- second
- week
- weekday
而不是像上面表格中的繁多的传统方法, 我们需要一些简单的方法就能处理日期各种表示形式之间的转换.
JavaScript 使用的时间戳是从 1970-01-01开始的,
比如 Date.now() 返回当前时间戳, 但是可以在任何 JavaScript 代码中去执行, 这也给恶意篡改代码提供了"接口"...
所以在日常开发中, 我们还是使用封装好的日期时间处理库比较方便...
更多阅读
更多更文阅读请查收:
【JS】基于对象编程的 JavaScript-字符串对象、 【JS】布尔(boolean)类型
【数据结构】数据结构-对象和数组(二)数组 Array、 【数据结构】数据结构-对象和数组(一)对象 Object、 【数据结构】深入了解 JSON
【Node.js】文件系统模块、 【Node.js】HTTP 模块
【Node.js】安装&文档、 【工具准备】、 【开工】、 【详细步骤(四)】、 【模块处理工具(五)】、 【模块化编程的理解】
跟上节奏, 一步一步! 下文更新预告:
接下来会继续详细学习 JavaScript 的相关方法, 冲鸭!! xdm
学习用到的效率工具, 提高开发效率, 为我们的开发提效赋能!
跟上前进的步伐, 向前加油
加油!! go~~