首页 > 解决方案 > 为什么 Date().toLocaleString 在 nodejs 中返回的值与浏览器不同?

问题描述

在 chrome 上执行new Date().toLocaleString()时返回“5/2/2019, 11:55:00 AM”,

在 nodejs 上执行相同的代码返回

“2019 年 5 月 2 日,11:55:00”,没有上午/下午

我需要有一个 12 小时格式的日期,在 nodejs 中提到的 AM/PM 类似于浏览器中返回的日期。

我错过了什么,这是预期的行为吗?

标签: javascriptnode.jsstringdatetimev8

解决方案


它依赖于实现,即不同的实现可以返回不同的字符串格式。


20.3.4.41 日期.prototype.toString()

执行以下步骤:

...否则,让 tv 成为这个时间值。返回 ToDateString(tv)。

20.3.4.41.1 运行时语义:ToDateString(tv)

执行以下步骤:

  1. 断言:类型(电视)是数字。

  2. 如果 tv 为 NaN,则返回“无效日期”。

  3. 返回一个依赖于实现的String 值,它使用一种方便的、人类可读的形式将 tv 表示为当前时区中的日期和时间。


不过,似乎将来会有一种标准格式。


推荐阅读