Day.js 超轻量级时间插件

267 阅读2分钟

Day.js 是一个轻量级的 JavaScript 日期处理库,它提供了与 Moment.js 兼容的 API,但体积更小,压缩后仅有 2KB 左右。以下是 Day.js 的一些基本使用方法:

  1. 安装 Day.js

    • 通过 npm 安装:npm install dayjs
    • 通过 yarn 安装:yarn add dayjs
    • 或者在 HTML 文件中直接引入 CDN 链接:
      <script src="https://unpkg.com/dayjs"></script>
      
  2. 在项目中使用 Day.js

    • 在 Node.js 项目中,可以通过 require 方式引入:
      const dayjs = require("dayjs");
      
    • 在现代 JavaScript 项目中,可以使用 import 方式:
      import dayjs from 'dayjs';
      
  3. 创建日期对象

    • 获取当前日期和时间:
      const now = dayjs();
      console.log(now.toString()); // 输出类似于 "2023-11-09T14:00:00+08:00"
      
    • 解析指定的日期和时间:
      const specificDate = dayjs('2023-01-01');
      console.log(specificDate.toString()); // 输出 "2023-01-01T00:00:00+08:00"
      
  4. 格式化日期

    • 使用 .format() 方法将日期对象格式化为指定格式的字符串:
      const formattedDate = dayjs().format('YYYY-MM-DD');
      console.log(formattedDate); // 输出当前日期,格式为 "年-月-日"
      
  5. 解析日期字符串

    • Day.js 可以解析各种格式的日期字符串:
      const date1 = dayjs('2024-07-27', 'YYYY-MM-DD');
      console.log(date1.toString());
      const date2 = dayjs('27/07/2024', 'DD/MM/YYYY');
      console.log(date2.toString());
      
  6. 操作日期

    • Day.js 支持日期的加减操作:
      const date = dayjs();
      const nextWeek = date.add(7, 'day');
      console.log(nextWeek.format('YYYY-MM-DD'));
      const lastMonth = date.subtract(1, 'month');
      console.log(lastMonth.format('YYYY-MM-DD'));
      
  7. 比较日期

    • Day.js 提供了日期比较的方法:
      const date1 = dayjs('2024-07-27');
      const date2 = dayjs('2024-08-01');
      console.log(date1.isBefore(date2)); // 输出:true
      console.log(date1.isAfter(date2)); // 输出:false
      console.log(date1.isSame(date2)); // 输出:false
      
  8. 插件机制

    • Day.js 支持插件扩展,例如 relativeTime 插件用于处理相对时间:
      import relativeTime from 'dayjs/plugin/relativeTime';
      dayjs.extend(relativeTime);
      console.log(dayjs().fromNow()); // 输出如 "3 minutes ago"
      
  9. 国际化支持

    • Day.js 支持多语言环境,可以按需引入不同的语言包:
      import 'dayjs/locale/es'; // 引入西班牙语包
      dayjs.locale('es'); // 设置当前语言为西班牙语
      console.log(dayjs().format('LL')); // 格式化为 "DD [de] MMMM [de] YYYY"