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

时间表示的方法

作者: 郑馋师 | 来源:发表于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的函数,使得可以实现一个日期的转换成今天昨天的功能。

    相关文章

      网友评论

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

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