美文网首页
时间表示的方法

时间表示的方法

作者: 郑馋师 | 来源:发表于2020-03-04 11:23 被阅读0次

在后续的开发过程发现了如果不用到dayjs的地方,想要调用时间,则用new Date()函数时候,toString()的时候不能直接,要new Date().toISOString()才可以得到

在做项目的时候发现表示时间的时候如果用自带的api很复杂,所以就想办法找新的库来用,一开始用
Moment.js,但是后来发现这个太大了,所以就转向了dayjs,可用的东西很多而且相对比较小一点。这些是官方文档给出的api和优势。

dayjs()
  .startOf('month')
  .add(1, 'day')
  .set('year', 2018)
  .format('YYYY-MM-DD HH:mm:ss')

🕒 和 Moment.js 相同的 API 和用法
💪 不可变数据 (Immutable)
🔥 支持链式操作 (Chainable)
🌐 国际化 I18n
📦 仅 2kb 大小的微型库
👫 全浏览器兼容

我去了他们官网阅读了一下,发现这个还有一个好处就是每次都会返回一个新的实例,使得不会改变原有数据,妙


dayjs官网

安装

npm install dayjs --save

API

Day.js 有很多 API 来解析、处理、校验、增减、展示时间和日期

dayjs('2018-08-08') // 解析

dayjs().format('{YYYY} MM-DDTHH:mm:ss SSS [Z] A') // 展示

dayjs()
  .set('month', 3)
  .month() // 获取

dayjs().add(1, 'year') // 处理

dayjs().isBefore(dayjs()) // 查询

API 参考

国际化 I18n

Day.js 支持国际化

但除非手动加载,多国语言默认是不会被打包到工程里的

import 'dayjs/locale/es' // 按需加载

dayjs.locale('es') // 全局使用西班牙语

dayjs('2018-05-05')
  .locale('zh-cn')
  .format() // 在这个实例上使用简体中文

国际化 I18n

插件

插件是一些独立的程序,可以给 Day.js 增加新功能和扩展已有功能

import advancedFormat from 'dayjs/plugin/advancedFormat' // 按需加载插件

dayjs.extend(advancedFormat) // 使用插件

dayjs().format('Q Do k kk X x') // 使用扩展后的API

插件列表

而我本人则使用了其中一些api来操作时间,比如这个

   beautify(string: string) {
      const day = dayjs(string);
      const now = dayjs();
      if (day.isSame(now, 'day')) {
        return '今天';
      } else if (day.isSame(now.subtract(1, 'day'), 'day')) {
        return '昨天';
      } else if (day.isSame(now.subtract(2, 'day'), 'day')) {
        return '前天';
      } else if (day.isSame(now, 'year')) {
        return day.format('M月D日');
      } else {
        return day.format('YYYY年M月D日');
      }
    }

这里我封装了一个beautify的函数,使得可以实现一个日期的转换成今天昨天的功能。

相关文章

  • 时间表示的方法

    在后续的开发过程发现了如果不用到dayjs的地方,想要调用时间,则用new Date()函数时候,toString...

  • Date类的概述和构造

    概述:表示特定的瞬间,精确到毫秒。可以通过方法来设定自己所表示的时间,可以表示任意时间。 构造方法: a.Da...

  • 04.Date类的概述和构造

    Date类 Date: 表示特定的瞬间,精确到毫秒,他可以通过方法来设定自己所表示的时间,可以表示任意的时间 Da...

  • ISO 8601和dayjs

    ISO 8601 是国际标准的日期和时间的表示方法 日期和时间的组合表示法合并表示时,要在时间前面加大写字母T,如...

  • 基于残差平衡及边界约束的分段线性回归

    时间序列自动分段 时间序列表示方法, 现有的时间序列表示方法,一般分为两类: 第一类是通过将时间序列从时域转换到频...

  • 图的表示方法

    基本要求 它必须为可能在应用中碰到的各种类型的图预留出足够的空间; 图的实例方法实现一定要快。 实现选择 邻接矩阵...

  • 集合的表示方法

  • 倍数的表示方法

    1. A +is…times+ as+ adj.原级+as +B 2. A +is…times+ adj.比较级+...

  • 树的表示方法

    #define MAX_TREE_SIZE 100 typedef struct //节点结构 { char d...

  • R语言与生信应用21-R语法-日期与时间

    日期与时间 R有一套特殊日期和时间的表示方法: 日期使用 Date 类来表示 时间是通过 POSIXct 或 PO...

网友评论

      本文标题:时间表示的方法

      本文链接:https://www.haomeiwen.com/subject/gskmlhtx.html