为什么我不能在Node中设置moment本地化?

4

我是一名运行Node应用的开发者,以下是我的app.js文件中的全部内容:

var moment = require('moment');
moment().locale('fr');
console.log(moment.locale())

我希望这段代码输出 'fr',但实际输出的是 'en',在我执行时出现了这种情况。
runjs app.js

在 node_modules/moment/locale 中有一个 fr-folder。

以下是我的软件包:

{
  "name": "zenqa",
  "version": "1.0.0",
  "description": "Faq for Zenconomy.se",
  "main": "index.js",
  "dependencies": {
    "body-parser": "^1.14.2",
    "concat-files": "^0.1.0",
    "express": "^4.13.3",
    "marked": "^0.3.5",
    "moment": "^2.11.2",
    "mustache-express": "^1.2.2",
    "node-sass-middleware": "^0.9.7",
    "php-unserialize": "0.0.1",
    "requestify": "^0.1.17",
    "validator": "^4.8.0"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Kristoffer Nolgren",
  "license": "ISC",
  "repository": {
    "type": "git",
    "url": "git@github.com:kristoffernolgren/ZenqaMiddleware.git"
  }
}
6个回答

8
根据文档,有一个导致无法加载 moment.locale 的 bug。因此,您可以使用以下代码。
var moment = require('moment');
require('moment/locale/fr');
console.log(moment.locale());

5
花了好几个小时才发现我需要从 /dist 目录导入本地化配置。可能是因为我的设置不同,但这条信息或许能帮到其他人。
import moment from 'moment';
import 'moment/dist/locale/fr';

moment.locale('fr');

测试

import fr1 from 'moment/dist/locale/fr';
import fr2 from 'moment/locale/fr';

console.log(fr1); // Locale {_calendar: {…}, ... }
console.log(fr2); // {}


3

您可以使用:

import moment from "moment";
import "moment/locale/es";

0

对于 Node,您可以使用:

moment.updateLocale('es');

我已经测试过了。


0

根据当前的文档,这是可能的:

var moment = require('moment');
moment.locale('fr');
console.log(moment().format());

-1

当前文档不正确。在Node.JS中,您仍然使用此代码:

moment.lang('fr');


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接