Nuxt Nation 大会即将到来。加入我们,时间为 11 月 12-13 日。

dayjs
dayjs-nuxt

Nuxt 的 Day.js 模块

Nuxt Day.js module

Day.js Nuxt 模块

快速且仅 2kB 的 Moment.js 替代方案,拥有相同的现代 API

npm versionnpm downloadsLicenseNuxt

支持 v3 的 Day.js Nuxt 模块

特性

  • ⛰  支持 Nuxt 3
  • 🚠  激活任何可用的插件或语言环境
  • 🌲  指定默认语言环境和时区

快速设置

  1. dayjs-nuxt 依赖项添加到您的项目中
npx nuxi@latest module add dayjs
  1. dayjs-nuxt 添加到 nuxt.config.ts 文件的 modules 部分
export default defineNuxtConfig({
  modules: [
    'dayjs-nuxt'
  ]
})

基本用法

您可以在模板中使用提供的 $dayjs 访问 Day.js。

<template>
  <div>
    <time :datetime="$dayjs('2023-01-01').utc().toString()"> {{ date }} </time>
  </div>
</template>

组合式函数

您可以使用 useDayjs 组合式函数在任何地方访问 Day.js。

<script setup>
  import { useDayjs } from '#dayjs' // not need if you are using auto import
  const dayjs = useDayjs()
  dayjs.locale('fr')
  dayjs.extend(...)
</script>

配置

您可以指定任意数量的语言环境、插件,设置默认语言环境,并设置默认时区

export default defineNuxtConfig({
  modules: ['dayjs-nuxt'],
  dayjs: {
    locales: ['en', 'fr'],
    plugins: ['relativeTime', 'utc', 'timezone'],
    defaultLocale: 'en',
    defaultTimezone: 'America/New_York',
  }
})

默认情况下,我们包含 relativeTime 和 utc 插件,并始终导入 updateLocale

外部插件

export default defineNuxtConfig({
  modules: ['dayjs-nuxt'],
  dayjs: {
    ...
    externalPlugins: [{
      name: 'dayjsBusinessDays',
      package: 'dayjs-business-days2',
      option: {
        holidays: [`2023-12-26`],
        holidayFormat: `YYYY-MM-DD`,
      }
    }]
    ...
  }
})

可选的 defaultLocale 自定义

defaultLocale: 中,您可以定义一个包含自定义语言环境的数组,而不是语言环境字符串。有关更多信息,请参阅 dayjs 自定义

以下是一个 relativeTime 配置的示例,让我们创建一个 咕噜 可以理解的配置

export default defineNuxtConfig({
  modules: ['dayjs-nuxt'],
  dayjs: {
    ...
    defaultLocale: ['en', {
      relativeTime: {
        future: "in %s",
        past: "%s ago",
        s: 'a few secondses',
        m: "a minute",
        mm: "%d minuteses",
        h: "an hour",
        hh: "%d hourses",
        d: "a day",
        dd: "%d dayses",
        M: "a month",
        MM: "%d monthseses",
        y: "a year",
        yy: "%d yearseses"
      }
    }]
    ...
  }
})

开发

# Install dependencies
npm install

# Generate type stubs
npm run dev:prepare

# Develop with the playground
npm run dev

# Build the playground
npm run dev:build

# Run ESLint
npm run lint

# Run Vitest
npm run test
npm run test:watch

# Release new version
npm run release