JavaScript 中的日期处理和时间格式化方法总结

前言

在前端开发中,日期和时间处理是必不可少的一个部分。JavaScript 提供了很多处理日期和时间的方法,本文将对其进行总结和归纳,希望能对大家有所帮助。

时间戳

在 JavaScript 中,时间戳是一个很常用的概念,它是指从 1970 年 1 月 1 日 00:00:00 UTC 开始的毫秒数。我们可以使用 Date() 对象的 getTime() 方法获取当前时间的时间戳:

--- --------- - --- ----------------- -- -------------

如果我们想获取某个指定时间的时间戳,可以使用 Date() 对象的 valueOf() 方法:

--- --------- - --- ---------------- --------------------- -- -------------

日期格式化

在日期显示时,我们通常需要对日期格式进行调整。以下是一些常用的日期格式:

Format Description
yyyy 4 位数的年份
yy 2 位数的年份
MM 2 位数的月份(01~12)
M 12 位数的月份(112)
dd 2 位数的日期(01~31)
d 12 位数的日期(131)
HH 2 位数的小时数(00~23)
H 12 位数的小时数(023)
hh 2 位数的小时数(01~12)
h 12 位数的小时数(112)
mm 2 位数的分钟数(00~59)
m 12 位数的分钟数(059)
ss 2 位数的秒数(00~59)
s 12 位数的秒数(059)

使用 toLocaleDateString() 方法进行格式化

toLocaleDateString() 方法可以将日期格式化成本地化的字符串,具体支持的格式取决于不同的浏览器和操作系统,常用的格式如下:

--- ---- - --- ---------------- -----------
--- ------------- - ------------------------------------- -
  ----- ----------
  ------ ----------
  ---- ---------
--- -- ----------

当然,具体的格式化规则可以自由组合和定制,例如:

--- ---- - --- ---------------- -----------
--- ------------- - ------------------------------------- -
  ------- ------
  ----- ----------
  ------ --------
  ---- ----------
  ----- ----------
  ------- ----------
  ------- ---------
--- -- ---------- --------

使用 moment.js 库进行格式化

moment.js 是一个非常流行的时间日期处理库,它可以大大简化日期格式化的工作,同时还提供了很多方便的功能,例如时区转换和日期计算等。以下是一些常用的格式化规则:

--- ---- - ------------------ -----------
--- ------------- - -------------------------- -- ----------
--- ---- - ------------------ -----------
--- ------------- - ---------------------- ---------- -- ---------- --------

使用 Date() 对象的方法进行格式化

通常,我们也可以使用 Date() 对象本身提供的方法进行日期格式化,例如:

--- ---- - --- ---------------- -----------
--- ---- - ------------------- -- ----
--- ----- - --------------- - -- -- -
--- --- - --------------- -- --
--- ---- - ---------------- -- --
--- ------ - ------------------ -- -
--- ------ - ------------------ -- -
--- ------------- - -------------------------- -- ---------

需要注意的是,getMonth() 方法返回的是一个从 0 开始的月份值,因此需要加上 1 才能得到实际的月份。

日期计算

在前端开发中,我们有时需要对日期进行计算,例如计算两个日期之间的天数、时间差等。以下是一些常用的日期计算方法:

计算两个日期的时间差

可以使用 getTime() 方法获取两个日期的时间戳,并进行差值计算:

--- ----- - --- ---------------- -----------
--- --- - --- ---------------- -----------
--- ---- - ------------- - ---------------- -- ---------

上述计算得到的是两个日期之间的毫秒数差值,可以根据具体需求进行转换。

计算两个日期之间的天数

可以先计算两个日期的毫秒数差值,然后根据一天的毫秒数(1000 x 60 x 60 x 24)进行计算:

--- ----- - --- ---------------- -----------
--- --- - --- ---------------- -----------
--- ---- - ------------- - ---------------- -- ---------
--- ---- - --------------- - ----- - -- - -- - ----- -- -

计算某个日期之后或之前的日期

可以使用 setTime() 方法设置一个日期之后或之前的日期:

--- ---- - --- ---------------- -----------
--------------------------- - -- - -- - -- - -- - ------ -- ---------- --------

上述代码中,通过将日期的时间戳加上 10 天的毫秒数来实现了日期加法。如果要做日期减法,则只需要将时间戳减去相应的毫秒数即可。

总结

以上,就是 JavaScript 中的日期处理和时间格式化方法的总结。相信这些内容可以帮助你更加轻松地处理日期和时间,同时也可以提高你的前端开发效率和质量。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6461e06b968c7c53b033653e


猜你喜欢

  • Babel 编译原理解析

    前言 在我们日常的前端开发工作中,我们经常会使用一些新特性的 JavaScript 语法,如箭头函数、解构赋值、模板字符串等。这些语法在最新的规范中可能已经被支持,但是在一些老的浏览器版本中并不被支持...

    1 年前
  • 响应式设计中为什么不采用 zoom 缩放方法?

    在响应式设计中,我们通常会采用一些技术手段来适应不同的屏幕尺寸和分辨率,以提供更好的用户体验。其中一种常见的做法是采用 zoom 缩放方法,即利用 CSS 的 zoom 属性来缩放页面元素。

    1 年前
  • 「ES12」中的 Class fields 详解

    在最新的 ECMAScript 标准中,即 ES12 中,JavaScript 中的类语法得到了更新和扩展,其中一个很重要的新特性便是 Class fields。本文将详细讲解 Class field...

    1 年前
  • CSS Reset 如何避免样式丢失问题

    什么是 CSS Reset 在我们开始学习如何避免样式丢失问题之前,首先我们需要了解什么是 CSS Reset。 CSS Reset 是一段 CSS 代码片段,旨在消除浏览器默认样式和行为的影响,使 ...

    1 年前
  • Serverless 应用中的数据流处理技术探索

    前言 在 Serverless 应用中,数据流处理是一个重要的技术领域。这涉及到消息传递、数据流转换、大数据计算等问题。本文将介绍 Serverless 应用中的数据流处理技术,包括其原理、应用场景、...

    1 年前
  • Socket.io 客户端与服务端的通信过程详解

    Socket.io 是一个面向浏览器和服务器的实时数据通信库,它可以让我们通过 WebSocket、轮询等多种方式进行双向通信。在前端开发中,Socket.io 经常用于实现实时通知、聊天室、游戏等功...

    1 年前
  • 使用 Enzyme 测试 React 组件(二)

    在上一篇文章中,我们已经了解了何为 Enzyme,以及它是如何帮助我们测试 React 组件的。在这篇文章中,我们将继续深入探讨如何使用 Enzyme 进行 React 组件测试,包括组件渲染、交互事...

    1 年前
  • Mongoose 中使用 ObjectId 类型的方法详解

    在 MongoDB 中,每个文档都有一个唯一的 _id 属性,其可以用作主键,也可以根据其在索引中的位置进行排序。在 Mongoose 中,可以使用 ObjectId 类型来表示 _id 属性,它是一...

    1 年前
  • ES7 最新手册:Symbol 类型

    在 ECMAScript 2015 (ES6)草案中,Symbol 是一种新的基本数据类型,用于表示一个独一无二的标识符。它的出现使得我们可以创建真正意义上的私有成员和方法,而不是依靠一些 hack ...

    1 年前
  • RxJS 中的 concat 操作符详解

    在 RxJS 中,concat 操作符用于将多个 Observables 顺序地连接起来,类似于 JavaScript 数组中的 concat 方法。通过 concat 操作符,我们可以将多个 Obs...

    1 年前
  • Vuex 的状态管理常见问题

    Vuex 是一个现代的状态管理库,用于统一管理 Vue.js 应用程序中的数据状态。它使用了集中式存储模式,使得状态变化变得可追踪、可调试、可预测。但是,使用 Vuex 过程中也会遇到一些问题或者疑惑...

    1 年前
  • Chai.js 中 expect 断言的高级用法

    Chai.js 中 expect 断言的高级用法 在前端开发中,测试是非常重要的一环。而在 JavaScript 的测试库中,Chai.js 是非常流行且优秀的一种选择。

    1 年前
  • 如何在 Scully 项目中使用 Tailwind CSS?

    前言 Scully 是一个基于 Angular 的静态网站生成工具,用于生成快速、安全、高性能的静态网站。而 Tailwind CSS 是一款快速、灵活的 CSS 框架,可以帮助我们快速开发出美观、高...

    1 年前
  • Sequelize 中的 Hooks 概述及使用教程

    在使用 Sequelize ORM 进行数据库操作的过程中,有时会遇到一些需要在钩子函数中执行的操作,例如在插入数据前对数据进行处理、在删除数据后进行相关操作等,这时 Sequelize Hooks ...

    1 年前
  • 梳理 ES9 中的扩展运算符

    在 ES6 中,新增了扩展运算符 ...,可以将数组或者对象进行展开,方便使用, ES9 中的扩展运算符又进一步增强了其功能。 扩展运算符的基本用法 扩展运算符 ... 用于对数组或者对象进行展开,如...

    1 年前
  • Webpack 优化之缓存策略

    Webpack 是一个强大的前端自动化打包工具,但在项目开发过程中,我们经常会遇到构建速度慢或开发效率低的问题。其中一个重要原因是缺乏有效的缓存策略。在本文中,我们将讲述如何使用 Webpack 的缓...

    1 年前
  • Redux 架构的进一步扩展

    在前端开发中,Redux 是一个非常流行的状态管理库。它提供了可预测的状态管理机制,可以让开发者更好地管理应用的状态。但随着应用的增长和复杂度的提高,用 Redux 进行状态管理的难度也会随之增加。

    1 年前
  • Node.js 中使用 Passport 进行用户验证

    在 web 开发中,用户验证是一个重要的部分。传统的用户验证一般使用用户名和密码,但是这种方式存在许多安全风险,比如用户的密码可能被黑客盗取。为了提高用户验证的安全性,并且方便用户登录,我们可以使用 ...

    1 年前
  • React Hook 实现 Modal 弹窗

    随着前端技术的不断发展,React 在前端领域越来越受到开发者的追捧。而 React Hook 则是 React 16.8 版本新增的一项特性,它能够让开发者在函数组件中使用 state 和其他 Re...

    1 年前
  • 在 LESS 中使用变量控制垂直居中

    在前端开发中,居中是一个经常用到的操作。特别是在响应式布局中,让元素垂直居中是必不可少的。而在使用 LESS 进行样式编写时,可以利用变量的特性来控制垂直居中的效果。

    1 年前

相关推荐

    暂无文章