# @bbc/psammead-timestamp-container 中文文档

规范地址：https://npmcn.com/package/%40bbc/psammead-timestamp-container/

版本：5\.1\.2
npm 元数据更新时间：2026-04-16T10:49:56.811Z
中文译文更新时间：2026-11-07T18:57:29.987Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bbc/psammead-timestamp-container
原文对照：https://npmcn.com/package/%40bbc/psammead-timestamp-container/?lang=original
源码仓库：https://github.com/bbc/psammead/tree/latest/packages/containers/psammead-timestamp-container

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：63.2 kB，17 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- 运行依赖：3 个
- peer 依赖：react \>=16\.9\.0，moment 2\.24\.0
- 首次发布：2019-05-21T10:16:26.346Z
- 最新版本发布：2022-03-30T12:45:43.625Z
- 近 30 天下载量：5187（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：143（近 12 个月 0 个）

## 中文简介

使用即时区对相对时间和绝对时间执行时标容器

## 安装

```sh
npm install @bbc/psammead-timestamp-container
```

也可以使用：`pnpm add @bbc/psammead-timestamp-container`、`yarn add @bbc/psammead-timestamp-container`、`bun add @bbc/psammead-timestamp-container`

## README

# {\\fn黑体\\fs20\\shad2\\2ah82\\3ah20\\4ah33\\fscx95\\3ch592001\\be1}时间戳 - 集装箱 - - {\\fn黑体\\fs20\\shad2\\2ah82\\3ah20\\4ah33\\fscx95\\3ch592001\\be1} [![Known Vulnerabilities](https://snyk.io/test/github/bbc/psammead/badge.svg?targetFile=packages%2Fcontainers%2Fpsammead-timestamp-container%2Fpackage.json)](https://snyk.io/test/github/bbc/psammead?targetFile=packages%2Fcontainers%2Fpsammead-timestamp-container%2Fpackage.json) [![Dependency Status](https://david-dm.org/bbc/psammead.svg?path=packages/containers/psammead-timestamp-container)](https://david-dm.org/bbc/psammead?path=packages/containers/psammead-timestamp-container) [![peerDependencies Status](https://david-dm.org/bbc/psammead/peer-status.svg?path=packages/containers/psammead-timestamp-container)](https://david-dm.org/bbc/psammead?path=packages/containers/psammead-timestamp-container&type=peer) [![npm version](https://img.shields.io/npm/v/@bbc/psammead-timestamp-container.svg)](https://www.npmjs.com/package/@bbc/psammead-timestamp-container) [![Storybook](https://raw.githubusercontent.com/storybooks/brand/master/badge/badge-storybook.svg?sanitize=true)](https://bbc.github.io/psammead/?path=/story/timestampcontainer--default) [![GitHub license](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/bbc/psammead/blob/latest/LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/bbc/psammead/blob/latest/CONTRIBUTING.md)

## 说明

`psammead-timestamp-container` 是反应容器,提供相对和绝对时间,有时区支持-使用时区. 相对时间目前被硬码为英语(例如3分钟前). `psammead-timestamp-container` 返回单个时间元素.

## 出口

`/utilities` - 处理时间戳的出口职能.

## 何时使用此组件

`psammead-timestamp-container` 用于需要具有不同时间格式和时区可能的一次性DOM元素.

## 安装

`npm install @bbc/psammead-timestamp-container`

## 道具

| 参数 | 类型 | 需求 | 默认 | 示例 |
| --- | --- | --- | --- | --- |
| 时间戳 | 数字或字符串 | 对 | 不详 | `1530947227000`, (中文(简体) ), `'2012-03-08T12:17:24.000Z'` |
| 日期时间格式 | 字符串 | 对 | 不详 | `YYYY-MM-DD` |
| 正态 | 布尔 | 没有 | `false` | `true` |
| 格式 | 字符串 | 没有 | `null` | `D MMMM YYYY, HH:mm z` |
| 时区 | 字符串 | 没有 | `'Europe/London'` | `'Europe/London'` |
| 粘贴 | 布尔 | 没有 | `true` | `false` |
| 前缀 | 字符串 | 没有 | `null` | `Updated` |
| 后缀 | 字符串 | 没有 | `null` | `This is a suffix` |
| 脚本 | 对象 | 对 | 不详 | `{ canon: { groupA: { fontSize: '28', lineHeight: '32',}, groupB: { fontSize: '32', lineHeight: '36', }, groupD: { fontSize: '44', lineHeight: '48', }, }, trafalgar: { groupA: { fontSize: '20', lineHeight: '24', }, groupB: { fontSize: '24', lineHeight: '28', }, groupD: { fontSize: '32', lineHeight: '36', }, }, }` |
| 语言 | 字符串 | 没有 | `null` | `en` |
| 服务 | 字符串 | 对 | `null` | `news` |
| 阿尔特卡伦达 | 对象 | 没有 | `null` | 见 `jalaali` 日历在 [沙米计数器](https://github.com/bbc/psammead/blob/566e8115e5bc4a92313bdf352d56b9d5efcf0278/packages/utilities/psammead-calendars/src/calendars/jalaali.js#L47) 例如 |

`locale` 应该是一个瞬间的地方.

## 使用量

```jsx
import { latin } from '@bbc/gel-foundations/scripts';

const WrappingContainer = () => (
  <Timestamp
    timestamp={1530947227000}
    dateTimeFormat="YYYY-MM-DD"
    isRelative={false}
    format="D MMMM YYYY"
    timezone="Europe/London"
    prefix="Updated"
    suffix="."
    script={latin}
    locale="en"
  />
);
```

### 公用事业

**格式期限**

```jsx
import { formatDuration } from '@bbc/psammead-timestamp-container/utilities';

const localisedDuration = formatDuration({ duration: 'PTM30', locale: 'my' });
const customFormatDuration = formatDuration({
  duration: 'PTM30',
  format: 'mm,ss',
});
```

| 参数 | 类型 | 需求 | 默认 | 示例 |
| --- | --- | --- | --- | --- |
| 会期 | 字符串 | 对 | 不详 | `PTH1M29S30` 由 ISO 8601 标准指定的期限字符串 . |
| 格式 | 字符串 | 没有 | `mm:ss`,或 `h:mm:ss` 如果数小时 | `mm,ss` |
| 语言 | 字符串 | 没有 | `en-gb` | `fr` |

**本地化运动**

```jsx
import { localisedMoment } from '@bbc/psammead-timestamp-container/utilities';

const localisedMoment = localisedMoment({ locale, timestamp });
```

| 参数 | 类型 | 需求 | 默认 | 示例 |
| --- | --- | --- | --- | --- |
| 时间戳 | 数字或字符串 | 对 | 不详 | `1539969006000` (Unix时间戳), `'2012-03-08T12:17:24.000Z'` (ISO8601字符串) (中文(简体) ) |
| 语言 | 字符串 | 对 | 不详 | `fr` |

**格式Unix 时间戳**

```jsx
import { localiseTimestamp } from '@bbc/psammead-timestamp-container/utilities';

const formattedTime = formatUnixTimestamp({
  format,
  isRelative,
  locale,
  timestamp,
  timezone,
});
```

| 参数 | 类型 | 需求 | 默认 | 示例 |
| --- | --- | --- | --- | --- |
| 格式 | 字符串 | 没有 | "LL, LT Z" (英语) | `'D MMMM YYYY z'` 瞬间格式字符串 |
| 正态 | 布尔 | 对 | 不详 | `true` 当真实时, 格式在相对时间 |
| 语言 | 字符串 | 对 | 不详 | `fr` 时间 |
| 时间戳 | 数字或字符串 | 对 | 不详 | `1539969006000` (Unix时间戳), `'2012-03-08T12:17:24.000Z'` (ISO8601字符串) (中文(简体) ) |
| 时区 | 字符串 | 对 | 不详 | `'GMT'`, (中文(简体) ), `'Asia/Seoul'` 见(动态时区文件)\[[https://momentjs.com/timezone/ 页面存档备份,存于互联网档案馆](https://momentjs.com/timezone/)\[ . \] |

## 无障碍说明

语义的用法 `time` psammead-timestamp组件中的元素在使用VoiceOver等辅助技术用于iOS时会导致奇怪的行为. 具体来说,它导致了"文本分拆"的行为,前缀中的任何文本都会被读出,但语义中的值 `time` 元素在读出前需要再刷取.

然而,由于我们大力鼓励使用这种语义元素,并想确保其使用符合 [w3C 实例](https://www.w3.org/TR/html51/textlevel-semantics.html#the-time-element)我们觉得妥协是必要的.

## 路线图

目前,这个软件包只支持英语中的相对时间. 计划通过纳入以多种语言制作相对时间的逻辑,使这套软件更适合在世界服务站点使用.

## 捐款

Psammead完全开源. 我们感谢任何贡献,无论是新的组件、错误修正还是总体改进。 请参看我们的主要贡献指南,可查阅: [psammead 仓库的根](https://github.com/bbc/psammead/blob/latest/CONTRIBUTING.md)。 。 。 .

### [行为守则](https://github.com/bbc/psammead/blob/latest/CODE_OF_CONDUCT.md)

我们欢迎对这项工作的反馈和帮助。 通过参与这个项目,你同意遵守 [行为守则](https://github.com/bbc/psammead/blob/latest/CODE_OF_CONDUCT.md)请稍候再读一下.

### 许可证

萨姆米德 [Apache 2.0 许可](https://github.com/bbc/psammead/blob/latest/LICENSE)。 。 。 .

## 常见问题

### @bbc/psammead-timestamp-container 是什么？

使用即时区对相对时间和绝对时间执行时标容器

### 如何安装 @bbc/psammead-timestamp-container？

在项目目录运行 npm install @bbc/psammead-timestamp-container，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（\>=16\.9\.0）、moment（2\.24\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @bbc/psammead-timestamp-container 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/bbc\_\_psammead-timestamp-container 是否存在。

### @bbc/psammead-timestamp-container 支持 ESM 还是 CommonJS？

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

### @bbc/psammead-timestamp-container 可以商用吗？

@bbc/psammead-timestamp-container 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @bbc/psammead-timestamp-container 的下载量有多少？

根据 npm 官方下载统计，@bbc/psammead-timestamp-container 在 2026/10/08 – 2026/11/06 这 30 天内被下载 5,187 次，日均约 173 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @bbc/psammead-timestamp-container 还在维护吗？

最新版本 5\.1\.2 发布于 2022/03/30（4 年前）；至今共发布 143 个版本，其中过去 12 个月发布了 0 个；首次发布于 2019/05/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

