Answers:
您需要moment.lang(警告:lang()
从moment开始不推荐2.8.0
使用,请locale()
改用):
moment.lang("de").format('LLL');
http://momentjs.com/docs/#/i18n/
从v2.8.1开始,moment.locale('de')
设置本地化,但不返回moment
。一些例子:
var march = moment('2017-03')
console.log(march.format('MMMM')) // 'March'
moment.locale('de') // returns the new locale, in this case 'de'
console.log(march.format('MMMM')) // 'March' still, since the instance was before the locale was set
var deMarch = moment('2017-03')
console.log(deMarch.format('MMMM')) // 'März'
// You can, however, change just the locale of a specific moment
march.locale('es')
console.log(march.format('MMMM')) // 'Marzo'
总而言之,调用locale
Global会moment
为所有将来的moment
实例设置语言环境,但不会返回的实例moment
。调用locale
一个实例,为该实例设置它,然后返回该实例。
另外,如Shiv在评论中所述,请确保使用“ moment-with-locales.min.js”而不是“ moment.min.js”,否则将无法使用。
var deMoment = moment(); deMoment.lang('de')
并重用deMoment
脚本,而不用花时间在整个脚本中。
Deprecation warning: moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages. Arguments: fr
import moment from 'moment'; import localization from 'moment/locale/de'
moment().locale("de", localization).format('LLL')
我还必须导入语言:
import moment from 'moment'
import 'moment/locale/es' // without this line it didn't work
moment.locale('es')
然后像平常一样使用片刻
alert(moment(date).fromNow())
import 'moment/locale/es'
require("moment/min/locales.min");
或使用importimport 'moment/min/locales.min'
我刚刚安装了Bower并de.js
在html项目中链接为javascript资源。
bower install moment --save
您也可以手动下载moment.js
和de.js
。
de.js
在我的主项目文件中链接会自动更改对矩类及其方法的所有访问的语言环境。
将有 没有必要再去做一个moment.locale("de").
或者
moment.lang("de").
源代码。
只需像这样链接所需的语言环境:
<script src="/bower_components/moment/moment.js"></script>
<script src="/bower_components/moment/locale/de.js"></script>
或者bower_components
,如果通过右键单击下载了moment.js 1990ies样式的文件,则可以不带路径地链接库,这在大多数情况下仍然可以正常工作。
<script src="/bower_components/moment/locale/de.js"></script>
它现在对我有用。
moment.locale('de')
,然后创建了一个新对象,该对象表示now的日期moment()
(请注意括号),然后format('LLL')
是。括号很重要。在2.20中测试。另外,请记住使用moment-with-locale.js
,如有必要,将名称更改为moment.js
。Django就moment-with-locale.js
我而言拒绝加载。
moment().locale('de').format('LLL');
结束于2017年/ 2018年:他人的答案有太多旧代码需要编辑,因此这里是我的替代答案:
与要求
let moment = require('moment');
require('moment/locale/fr.js');
// or if you want to include all locales:
require("moment/min/locales.min");
与进口
import moment from 'moment';
import 'moment/locale/fr';
// or if you want to include all locales:
require("moment/min/locales.min");
用:
moment.locale('fr');
moment().format('D MMM YY'); // Correct, set default global format
// moment.locale('fr').format('D MMM YY') //Wrong old versions for global default format
带时区
*要求:
require('moment-range');
require('moment-timezone');
*进口:
import 'moment-range';
import 'moment-timezone';
使用区域:
const newYork = moment.tz("2014-06-01 12:00", "America/New_York");
const losAngeles = newYork.clone().tz("America/Los_Angeles");
const london = newYork.clone().tz("Europe/London");
格式化日期的功能
const ISOtoDate = function (dateString, format='') {
// if date is not string use conversion:
// value.toLocaleDateString() +' '+ value.toLocaleTimeString();
if ( !dateString ) {
return '';
}
if (format ) {
return moment(dateString).format(format);
} else {
return moment(dateString); // It will use default global format
}
};
import moment from 'moment/min/moment-with-locales';
对于流星用户:
如果流星默认情况下未安装语言环境,则只能通过默认安装获得“ en”语言环境。
因此,您可以使用其他答案中正确显示的代码:
moment.locale('it').format('LLL');
但是在您安装所需的语言环境之前,它将一直保持英语状态。
有一种不错的,干净的方法可以在流星中暂时添加单个语言环境(由rzymek提供)。
使用通常的流星方式安装一下矩包:
meteor add rzymek:moment
然后只需添加所需的语言环境,例如意大利语:
meteor add rzymek:moment-locale-it
或者,如果您确实要添加所有可用的语言环境(向您的页面添加约30k):
meteor add rzymek:moment-locales
rzymek:moment-locale-de
并成功了:)
从时刻2.18.1开始:
moment.locale("de");
var m = moment().format("LLL")
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MomentJS</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
<script type="text/javascript" src="moment.js"></script>
<script type="text/javascript" src="locale/ne.js"></script>
</head>
<body>
<script>
jQuery(document).ready(function($) {
moment.locale('en'); // default the locale to English
var localLocale = moment();
moment.locale('ne'); // change the global locale to Nepalese
var ne1 = localLocale.format('LLLL');
var ne2 = moment().format('LLLL');
$('.ne1').text(ne1);
$('.ne2').text(ne2);
});
</script>
<p class="ne1"></p>
<p class="ne2"></p>
</body>
</html>
当我与gulp和朋友一起使用webpack(此生成器为我设置了所有内容)时,我不得不对bower.json文件进行更改。我必须覆盖一下即时包的默认导入,然后选择所有语言随附的文件:
"overrides": {
"moment": {
"main": [
"min/moment-with-locales.min.js"
]
}
}
这是我完整的bower.json文件:
{
"name": "html5",
"version": "0.0.0",
"dependencies": {
"angular-animate": "~1.4.2",
"angular-cookies": "~1.4.2",
"angular-touch": "~1.4.2",
"angular-sanitize": "~1.4.2",
"angular-messages": "~1.4.2",
"angular-ui-router": "~0.2.15",
"bootstrap-sass": "~3.3.5",
"angular-bootstrap": "~0.13.4",
"malarkey": "yuanqing/malarkey#~1.3.1",
"angular-toastr": "~1.5.0",
"moment": "~2.10.6",
"animate.css": "~3.4.0",
"angular": "~1.4.2",
"lodash": "^4.13.1",
"angular-moment": "^0.10.3",
"angularLocalStorage": "ngStorage#^0.3.2",
"ngstorage": "^0.3.10"
},
"devDependencies": {
"angular-mocks": "~1.4.2"
},
"overrides": {
"bootstrap-sass": {
"main": [
"assets/stylesheets/_bootstrap.scss",
"assets/fonts/bootstrap/glyphicons-halflings-regular.eot",
"assets/fonts/bootstrap/glyphicons-halflings-regular.svg",
"assets/fonts/bootstrap/glyphicons-halflings-regular.ttf",
"assets/fonts/bootstrap/glyphicons-halflings-regular.woff",
"assets/fonts/bootstrap/glyphicons-halflings-regular.woff2"
]
},
"moment": {
"main": [
"min/moment-with-locales.min.js"
]
}
},
"resolutions": {
"angular": "~1.4.2"
}
}
根据版本更改当下js语言
版本:2.8+
moment.locale('hi');
版本:2.5.1
moment.lang('hi');
像这样很好地工作: return moment(status.created_at).locale('es').fromNow();
对我来说,要进行一些更改(2.20版)
moment.locale('de')
,然后创建了一个新对象,该对象表示now的日期moment()
(请注意括号),然后是format('LLL')
它。括号很重要。因此,这意味着:
moment.locale('de');
var now = moment();
now.format('LLL');
moment-with-locale.js
。该文件包含所有语言环境信息,并且文件大小较大。下载locale
文件夹还不够。如有必要,将名称更改为moment.js
。Django就moment-with-locale.js
我而言拒绝加载。编辑:事实证明,重命名文件是没有必要的。我只是忘了在页面中调用它,所以Django认为加载它不是必要的,所以是我的错。
对于在异步环境中工作的用户,moment
按需加载语言环境时会出现异常行为。
代替
await import('moment/locale/en-ca');
moment.locale('en-ca');
颠倒顺序
moment.locale('en-ca');
await import('moment/locale/en-ca');
似乎语言环境已加载到当前选定的语言环境中,从而覆盖了任何先前设置的语言环境信息。因此,首先切换语言环境,然后加载语言环境信息不会导致此问题。
经过努力,这对我来说适用于moment
v2.26.0:
import React from "react";
import moment from "moment";
import frLocale from "moment/locale/fr";
import esLocale from "moment/locale/es";
export default function App() {
moment.locale('fr', [frLocale, esLocale]) // can pass in 'en', 'fr', or 'es'
let x = moment("2020-01-01 00:00:01");
return (
<div className="App">
{x.format("LLL")}
<br />
{x.fromNow()}
</div>
);
}
您可以传递en
,fr
或es
。如果需要其他语言,则必须导入语言环境并将其添加到数组中。
如果您只需要支持一种语言,则要简单一些:
import React from "react";
import moment from "moment";
import "moment/locale/fr"; //always use French
export default function App() {
let x = moment("2020-01-01 00:00:01");
return (
<div className="App">
{x.format("LLL")}
<br />
{x.fromNow()}
</div>
);
}