欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何使用moment.js进行时间格式转换?

最编程 2024-08-03 20:30:49
...

文章目录

    • 概述
    • moment数据转为其它格式
    • 其它时间字符串形式转为另外一种时间字符串形式
    • 常用的 关于时间字符串关键字
    • 扩展阅读
      • moment.js 和 day.js

在这里插入图片描述

概述

Moment.js 是一个非常流行的 JavaScript 日期和时间处理库,它提供了一系列功能强大的工具,用于处理日期和时间,以及格式化它们。

moment数据转为其它格式

我们在使用部分ui库的时候,经常发现,时间选择器回调函数给我们的数据返回的是一个moment形式的数据。

import moment from 'moment';

const Moment1 = moment()

// 将Moment1转为 yyyy-MM-DD 记得 月份和日期要大写
const time = moment(Moment1).format('yyyy-MM-DD')
// 将Moment1转为 yyyy-MM-DD hh:mm:ss 记得 月份和日期要大写 小时小写表示12小时制 分钟数要小写,因为和月份要区分
const time1 = moment(Moment1).format('yyyy-MM-DD hh:mm:ss')
// 将Moment1转为 yyyy-MM-DD HH:mm:ss 记得 月份和日期要大写 小时大写表示24小时制 分钟数要小写,因为和月份要区分
const time1 = moment(Moment1).format('yyyy-MM-DD HH:mm:ss')

其它时间字符串形式转为另外一种时间字符串形式

moment的第一个参数和第二个参数一定要匹配,第二个参数是描述第一个参数的时间组成成分,moment.js会根据第二个参数的描述,去对应的提取年份、月份、日期、星期、时、分、秒

import moment from 'moment';

const Moment1 = moment()

const time1 = moment(Moment1).format('YYYY-MM-DD hh:mm:ss')
// 将YYYY-MM-DD hh:mm:ss 形式的时间字符串转为 YYYY/MM/DD hh:mm:ss
const time2 = moment(time1, 'YYYY-MM-DD hh:mm:ss').format('YYYY/MM/DD hh:mm:ss')

常用的 关于时间字符串关键字

yyyy和YYYY在moment的官方文档中没有体现出来有何区别
yyyy: y才是标准的年份,java中会有这样的区别
YYYY: 是以周来计算年的,意思是当天所在周属于的年份,一周从周日开始算计算,周六结束,只要本周跨年,那么这一周就算下一年的。
也就是说:年份如果用Y会是这周的年份,java中会有这样的区别
MM: 月份
mm:DD: 日期
dd: 星期
hh: 12进制的小时
HH: 24进制的小时
SSS: 毫秒
ss:

关于moment的更多用法,请参考moment.js官方文档
http://momentjs.cn/docs/#/displaying/format/

扩展阅读

解析日期和时间:Moment.js 允许你从字符串中解析日期和时间,无论它们的格式如何。

格式化日期和时间:你可以将日期和时间格式化为你所需的任何字符串格式。

进行日期和时间的计算和操作:Moment.js 允许你进行日期和时间的加减、比较、差值计算等操作。

本地化:你可以根据用户的本地时间格式和语言设置来本地化日期和时间。

创建日期和时间:Moment.js 提供了用于创建日期和时间的方法,如获取当前时间、创建特定日期、时间戳等。

链式操作:你可以轻松地将多个日期和时间操作链接在一起,以进行复杂的操作。

Moment.js 使用简单且功能丰富,因此在处理日期和时间方面非常受欢迎。然而,需要注意的是,自 2020 年起,Moment.js 的维护者已经宣布停止维护 Moment.js,因为 JavaScript 本身已经在 ES6 中引入了更先进的日期和时间处理功能。建议在新项目中使用 JavaScript 内置的 Date 对象和 Intl.DateTimeFormat API 来处理日期和时间,或者使用其他现代的日期库,如 date-fns、Luxon 等。

moment.js 和 day.js

Moment.js 和 Day.js 都是 JavaScript 中用于处理日期和时间的库,它们有一些相似之处,但也有一些重要的区别。以下是 Moment.js 和 Day.js 之间的比较:

  1. 体积大小:

    • Moment.js 的文件大小相对较大,这可能导致加载时间较长,尤其在移动设备上。
    • Day.js 的文件大小较小,因此加载速度更快,这对于性能敏感的应用程序是一个优点。
  2. 可维护性:

    • Moment.js 自 2020 年以来已经停止维护,并且不再接受新功能或修复程序错误。这意味着 Moment.js 不再更新,可能会存在一些已知问题,不建议在新项目中使用。
    • Day.js 是一个较新的库,目前仍然在积极维护和开发中,具有更好的维护前景。
  3. 使用方式:

    • Moment.js 的 API 风格类似于链式操作,可以直接在日期对象上进行操作。
    • Day.js 采用函数式编程的方式,将日期对象视为不可变的,每个操作都会生成一个新的日期对象。
  4. 国际化和本地化:

    • Moment.js 支持国际化和本地化,允许你轻松地本地化日期和时间格式。
    • Day.js 也支持国际化和本地化,但它将本地化作为可选插件,可以根据需要加载。
  5. 插件系统:

    • Day.js 采用插件系统,允许你根据需要扩展其功能,以减小核心库的大小。

总的来说,如果你在新项目中需要一个轻量级、现代、维护良好的日期和时间库,Day.js 是一个不错的选择。如果你正在维护旧项目并且已经在使用 Moment.js,考虑迁移到 Day.js 或其他现代的日期库可能是一个明智的选择。 Day.js 提供了 Moment.js 类似的 API,因此迁移应该相对容易。

在这里插入图片描述

推荐阅读