JavaScript-天天聊对象-日期时间处理库 & Date对象

310 阅读3分钟

这是我参与8月更文挑战的第26天,活动详情查看:8月更文挑战

学习贵在坚持, 笔记是灵魂, 温故而知新, 时不时翻一翻, 回顾一下知识点, 加深记忆, 事半功倍!

前文我们学习了关于 JavaScript 中的 String 字符串对象`

今天来学习 JavaScript 中的 日期处理库 & Date对象

JavaScript 日期处理库推荐:

1. Moment.js

在日常项目开发中, 我们对于日期的处理, 之前用的比较多的日期封装库: moment.js

Moment.js 中文网 / 官网: momentjs.com

2. day.js GitHub Repo stars

现在推荐使用轻量化方案: 更轻量级别的库: day.js - dayjs.gitee.io

Day.js - 开源的 JS 时间日期处理库, 是一个仅 2kb 大小的轻量级 JavaScript 时间日期处理库,和 Moment.jsAPI 设计保持完全一样

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
  1. Node.js 项目中使用:
var dayjs = require('dayjs')
//import dayjs from 'dayjs' // ES 2015
dayjs().format()
// 默认返回的是 ISO8601 格式字符串 "2021-08-27T22:59:19+08:00"
  1. 浏览器中使用
<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 方法
1getDatesetDate
2getDay---
3getFullYearsetFullYear
4getYearsetYear
5getMonthsetMonth
6getHourssetHours
7getMillisecondssetMilliseconds
8getSecondssetSeconds
9getUTCDatesetUTCDate
10getUTCDaysetUTCDay
...------
---转换方法toDateString
------toLocalString
------toLocalDateString
------toTimeString
------toLocalTimeString
.........

getMonth 方法的返回值是从 0 开始算的, 即 getMonth 的返回值范围是 0-11

getDate 方法的返回值是从 1 开始的, 范围为 1-31, 这种不一致也是经常出错的根源所在..

另外 也建议使用 getFullYearsetFullYear, 减少规避错误的发生

按照我们的编程思维, Date 函数应当是具有方便的属性的数据对象:

  • year
  • month
  • day
  • hour
  • minute
  • second
  • week
  • weekday

而不是像上面表格中的繁多的传统方法, 我们需要一些简单的方法就能处理日期各种表示形式之间的转换.

JavaScript 使用的时间戳是从 1970-01-01开始的,

比如 Date.now() 返回当前时间戳, 但是可以在任何 JavaScript 代码中去执行, 这也给恶意篡改代码提供了"接口"...

所以在日常开发中, 我们还是使用封装好的日期时间处理库比较方便...

更多阅读

更多更文阅读请查收:

【JS】基于对象编程的 JavaScript-字符串对象【JS】布尔(boolean)类型

【JS】异常(报错)处理 try-catch

【JS】中各种神奇的 bug

【数据结构】数据结构-对象和数组(二)数组 Array【数据结构】数据结构-对象和数组(一)对象 Object【数据结构】深入了解 JSON

【Node.js】文件系统服务器-模拟接口

【Node.js】文件系统模块【Node.js】HTTP 模块

【Node.js】效率工具-nvm & nrm 等

【Node.js】包管理工具 npm & yarn 的使用

【Node.js】搭建自动化开发环境-基本介绍

【Node.js】安装&文档【工具准备】【开工】【详细步骤(四)】【模块处理工具(五)】【模块化编程的理解】

【Github】多人协作(二)【Github】基本使用(一)

【Git】代码版本控制-git 初识&基本操作(一)【Git】进阶(二)

跟上节奏, 一步一步! 下文更新预告:

接下来会继续详细学习 JavaScript 的相关方法, 冲鸭!! xdm

学习用到的效率工具, 提高开发效率, 为我们的开发提效赋能!

跟上前进的步伐, 向前加油

加油!! go~~