@box/readable-time

中文文档
2.3.40发布于 2026/11/06SEE LICENSE IN LICENSETypeScriptESM + CJS零依赖近 30 天下载 3.1万
原始使用文档
文档目录9 节
  1. Overview
  2. General
  3. Purpose
  4. Detailed description
  5. Usage
  6. Running commands
  7. Available commands
  8. Ownership
  9. Translations

readable-time

This library was generated with @box/automation. General overview on how to perform tasks on the generated library can be found in run-tasks Nx documentation

Overview

General

The readable-time Shared Feature exports a ReadableTime React component and a pure getReadableTime function that formats a timestamp into a human-readable string. All the logic related to time is encapsulated in the getReadableTime function, while the ReadableTime component uses it to display the formatted timestamp in the UI.

readable-time returns/shows relative times (e.g., "2 hours ago") or absolute dates (e.g., "Oct 5, 2018") based on the provided properties and the current date.

Both the component and the function are internationalized using react-intl to support multiple languages and locales. The ReadableTime component gets the intl object from the React context, while the getReadableTime function receives it as a parameter.

Purpose

The primary purpose of the readable-time Shared Feature is to format and display timestamps in a way that is easy for users to understand. It can handle various scenarios such as showing the time for today, yesterday, or a specific date, and can include the time of day if required.

Detailed description

Detailed description of the component can be found in src/lib/stories/additional-description.md file. Additional information is also available in Blueprint documentation at Readable Time page.

Usage

Duality of readable-time is that it can be used as a component or as a function.

import { ReadableTime } from '@box/readable-time';

const App = () => {
    return <ReadableTime timestamp={1742817318888} />;
};
import { getReadableTime } from '@box/readable-time';
import { createIntl } from 'react-intl';

const intl = createIntl({ locale: 'en' });
const readableTime = getReadableTime({ timestamp: Date.now(), intl });

Running commands

Your terminal should stay in location of root directory of repository, which is frontend-mono. That Allows Nx to run action against your project, or multiple project if that is necessary. Do not navigate to packages/group-shared-features/readable-time to run commands.

Commands for the project are run using syntax used by Nx:

Syntax: yarn nx <target name> <project name> <option overrides>
                      |              |                |
Example: yarn nx    test         products         --watch

Available commands

All commands used with Nx can be found in project.json file within your package.

  • nx storybook readable-time - launches development environment for UI component.
  • nx build-storybook readable-time - build static version of storybook with all stories.
  • nx build readable-time - build package using shared-feature-builder executor from automation package.
  • nx build readable-time --watch - build package with --watch flag enabled, which rebuilds dist content based on changes in src.
  • nx lint readable-time - runs linter over package files.
  • nx test readable-time - runs storybook tests (visual/interactions) and jest unit tests, producing coverage report at the end.
  • nx test-storybook readable-time - runs storybook tests. You need first to start storybook in separate terminal for this to work.
  • nx test-storybook-local-coverage readable-time - runs storybook tests, and produces coverage report at the end. Requires running instance of storybook.
  • nx test-storybook-ci readable-time - build storybook and run storybook tests with coverage output. Designed for CI usage.
  • nx test-jest readable-time - runs jest unit tests, producing code coverage at the end.
  • nx sonar readable-time - performs static analysis of code using SonarQube tooling, to detect bugs and code smells. Integrated as one of the steps in CI process.
  • nx chromatic readable-time - uploads storybook build for review to box chromatic , and performs visual comparison of the UI changes against baseline.
  • nx prepare readable-time - command run during package publication process orchestrated by Nx Release.

Ownership

Code of the feature belongs to Moji Team. Responsibilities of owning team include control over code quality, providing guidelines for changes, and alignment with other teams regarding changes. It would be a good practice to consult which team, owning or requesting, will be responsible for implementing changes to code.

Translations

Per-locale i18n/*.js files are generated and committed by the Moji Jenkins pipeline. The shared-feature builder copies them into dist/i18n/ during build. Consuming applications list this package in i18n.config.js under translationDependencies.

版本与发布记录

@box/readable-time 共发布 241 个版本,首次发布于 2026/04/29;过去 12 个月发布了 241 个版本。

版本发布日期距今
2.3.40latest2026/11/062 天前
2.3.392026/11/062 天前
2.3.382026/11/052 天前
2.3.372026/11/053 天前
2.3.362026/11/053 天前
2.3.352026/11/044 天前

关于 @box/readable-time 的常见问题

如何安装 @box/readable-time?

在项目目录运行 npm install @box/readable-time,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^18.0.0)、react-dom(^18.0.0)、react-intl(^6.4.2)、@box/blueprint-web(^18.10.3)、@box/blueprint-web-assets(^5.15.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@box/readable-time 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@box/readable-time 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@box/readable-time 可以商用吗?

@box/readable-time 使用 SEE LICENSE IN LICENSE 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

@box/readable-time 的下载量有多少?

根据 npm 官方下载统计,@box/readable-time 在 2026/10/09 – 2026/11/07 这 30 天内被下载 31,466 次,日均约 1,049 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@box/readable-time 还在维护吗?

最新版本 2.3.40 发布于 2026/11/06(2 天前);至今共发布 241 个版本,其中过去 12 个月发布了 241 个;首次发布于 2026/04/29。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。