Date.toLocaleDateString()在Node.js v10.14.2上不起作用

时间:2018-12-21 13:09:30

标签: javascript node.js

自从我将节点服务器更新为上一个稳定版本日期字符串以来,就没有像以前那样显示。

服务器:使用Node.js v10.14.2在centOS 7(UNIX)上运行节点
LAPTOP :在具有Node.js v8.5.0的macOS 10.14.2上运行节点

服务器和笔记本电脑中的代码相同,但是服务器中的输出错误,默认情况下日期以英文显示。

我试图更改语言。便携式计算机的网络发生变化,而服务器的网络却没有变化。

<code>var id = req.params.id;
db.getEvent(database, id, req.user.orchestra, function (document) {
var result = {
uuid: document.uuid,
type: document.type,
description: document.desc,
date: {
long: new Date(document.when).toLocaleDateString('es', { "weekday": "long", "year": "numeric", "month": "long", "day": "2-digit" }),
short: new Date(document.when).toLocaleDateString('es', { year: 'numeric', month: '2-digit', day: '2-digit' })
},
time: new Date(document.when).toLocaleTimeString('es', { "minute": "2-digit", "hour": "2-digit" }) + " CEST",
plus: new Date(parseInt(document.when) + parseInt(document.plus)).toLocaleTimeString('es', { "minute": "2-digit", "hour": "2-digit" }) + " CEST",
location: document.loc,
schedule: document.schedule
};
res.json(result);
});</code>

服务器输出为:2018年12月21日,星期五
预期的服务器输出:维尔恩斯,2018年7月7日
笔记本电脑的输出是:viernes,2018年7月7日

1 个答案:

答案 0 :(得分:1)

根据docs,nodejs国际化支持默认情况下设置为英语(至少是最新版本)。

您可以npm安装intl并要求安装,它将用有效的版本替换toLocaleString。

以上内容仅适用于toLocaleString,因此请忽略。

您可以npm安装full-icu-npm并按照安装结束时的说明进行操作。

  

Node.js(及其底层V8引擎)使用ICU在本机C / C ++代码中实现这些功能。但是,其中一些需要非常大的ICU数据文件才能支持世界各地。由于预计大多数Node.js用户将仅使用ICU功能的一小部分,因此默认情况下,Node.js仅提供完整ICU数据集的一部分。在构建或运行Node.js时,提供了几个用于自定义和扩展ICU数据集的选项。