순간의 언어를 변경하려면 어떻게 해야 합니까?
moment.js로 설정되는 날짜의 언어를 변경하려고 합니다.디폴트는 영어지만 독일어를 설정하고 싶습니다.제가 시도한 것은 다음과 같습니다.
var now = moment().format("LLL").lang("de");
있다NaN
.
var now = moment("de").format("LLL");
이건 반응도 없어요
var now = moment().format("LLL", "de");
변경 없음: 이것은 아직 영어로 결과를 내고 있습니다.
이것이 어떻게 가능한 걸까요?
make.lang (경고:lang()
부터 더 사용되지 않습니다.2.8.0
하다, 사용하다locale()
( ) :
moment.lang("de").format('LLL');
http://momentjs.com/docs/ #/i18n/
v2.8.1moment.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
moment
는, 장래의 설정합니다.moment
instance)는.moment
. 에 전화하고 있습니다부르기locale
인스턴스에서 해당 인스턴스를 설정하고 해당 인스턴스를 반환합니다.
또, Shiv가 코멘트에서 말한 것처럼, 「mondent.min.js」가 아니고, 「mondent-with-locales.min.js」를 사용해 주세요.그렇지 않으면 동작하지 않습니다.
언어도 Import해야 했습니다.
import moment from 'moment'
import 'moment/locale/es' // without this line it didn't work
moment.locale('es')
그럼 평소처럼 모멘트를 사용하세요.
console.log(moment(date).fromNow())
가장 빠른 방법:Bower와 함께 설치
하고 링크했습니다.de.js
projectjavascript 소소 as as as as as as as 。
bower install moment --save
할 도 있습니다.moment.js
★★★★★★★★★★★★★★★★★」de.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
마우스 오른쪽 버튼을 클릭하여 1990ies 스타일을 다운로드하면 대부분의 시나리오에서 정상적으로 동작합니다.
momentjs 2.8+를 사용하여 다음 작업을 수행합니다.
moment.locale("de").format('LLL');
http://momentjs.com/docs/ #/i18n/
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:
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
}
};
하면 '아까운데'를 할 거예요.moment.lang(navigator.language)
당신의 대본에.
에 표시하는 각 국가 로케일도 추가해야 합니다.예를 들어 GB 또는 FR의 경우 해당 로케일 형식을 moment.js 라이브러리에 추가해야 합니다.이러한 형식의 예는 monentjs 문서에서 확인할 수 있습니다.이 형식을 minute.js에 추가하지 않으면 현재 볼 수 있는 유일한 미국 로케일이므로 항상 미국 로케일이 선택됩니다.
끝에 이 은 .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하여 어레이에 추가해야 합니다.
한 가지 언어만 지원하면 됩니다.
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>
);
}
-- 갱신 --
예를 들어 위와 같은 모든 로케일파일을 Import하면 항상 마지막으로 Import된 로케일(위의 예에서는 "es")이 사용됩니다.이 로케일은 "fr"로 설정되어 있어도 마찬가지입니다.유효한 솔루션은 다음과 같습니다.
import moment from 'moment';
import 'moment/min/locales';
...
moment.locale('fr');
METAR 사용자:
기본적으로 로케일이 설치되지 않으면 기본 설치 시 'en' 로케일만 표시됩니다.
따라서 다른 답변에 표시된 것과 같은 코드를 사용합니다.
moment.locale('it').format('LLL');
그러나 필요한 로케일을 설치할 때까지 영어로 유지됩니다.
유성(rzymek에 의해 공급됨)에 개별 위치를 순간적으로 추가하는 멋지고 깨끗한 방법이 있습니다.
모멘트 패키지를 일반적인 유성 방식으로 설치합니다.
meteor add rzymek:moment
그리고 필요한 로케일을 추가합니다(예: 이탈리아어:
meteor add rzymek:moment-locale-it
또는 사용 가능한 모든 로케일을 추가하려는 경우(페이지에 약 30k 추가):
meteor add rzymek:moment-locales
모멘트 2.18.1 이후:
moment.locale("de");
var m = moment().format("LLL")
뭐가 바뀌었는지 모르겠지만 이렇게 언어파일을 가져오면 된다.
import 'moment/src/locale/fr';
moment.locale('fr')
Import 스테이트먼트의 src에 주의해 주세요.
monentjs 2.12+ 의 경우는, 다음의 순서를 실행합니다.
moment.updateLocale('de');
이 때 꼭 한다, 라는 해 주시기 바랍니다.moment.updateLocale(localeName, config)
기존 로케일을 변경합니다. moment.defineLocale(localeName, config)
는 새 로케일을 작성할 때만 사용해야 합니다.
<!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>
webpack을 gulp과 friends(이 제너레이터가 모든 것을 셋업)와 함께 사용하기 때문에 bower.json 파일을 변경해야 했습니다.모멘트 패키지의 기본 Import를 덮어쓰고 모든 언어와 함께 제공되는 파일을 선택해야 했습니다.
"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"
}
}
angular2-moment를 사용하지만 용도는 비슷해야 합니다.
import { MomentModule } from "angular2-moment";
import moment = require("moment");
export class AppModule {
constructor() {
moment.locale('ru');
}
}
버전에 따라 js 언어를 변경합니다.
버전: 2.8 이상
moment.hi' ;
버전: 2.5.1
moment.hi' ;
잘하다return moment(status.created_at).locale('es').fromNow();
저는 몇 가지 변경 사항이 있습니다(2.20 버전).
- 「」로 합니다.
moment.locale('de')
날짜를 오브젝트를moment()
안에 하세요) 에 (괄호 안에 주의하세요)를 클릭합니다.format('LLL')
괄호가 중요해요.
그 의미는 다음과 같습니다.
moment.locale('de');
var now = moment();
now.format('LLL');
- 꼭 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아.
moment-with-locale.js
파일에는 모든 로케일 정보가 포함되어 파일사이즈가 커집니다.locale
폴더는 충분하지 않습니다.필요에 따라 이름을 변경합니다.moment.js
장고는 장전하기를 거부한다.moment-with-locale.js
저 같은 경우에는요.
편집: 파일 이름을 변경할 필요가 없는 것으로 확인되었습니다.페이지에서 호출하는 것을 잊어버린 것 뿐이기 때문에, 장고는 로드할 필요가 없다고 생각하기 때문에, 제 잘못입니다.
이것은, 현재의 유저 로케이션을 자동적으로 검출하는 것만으로 동작합니다.
import moment from "moment/min/moment-with-locales";
// Then use it as you always do.
moment(yourDate).format("MMMM Do YYYY, h:mm a")
펜이 빠졌네.난 이걸 해결할 거야var moment = function(x) { return moment(x).locale('de'); }
다른 방법들은 (나에게는) 조건이 잘 지켜지지 않는 것 같다.
비동기 환경에서 작업하는 사용자의 경우,moment
온 디맨드로 로케일을 로드할 때 예기치 않게 동작합니다.
대신
await import('moment/locale/en-ca');
moment.locale('en-ca');
순서를 뒤바꾸다
moment.locale('en-ca');
await import('moment/locale/en-ca');
로케일이 현재 선택된 로케일로 로드되어 이전에 설정된 로케일 정보가 덮어쓰게 됩니다.따라서 먼저 로케일을 전환한 후 로케일 정보를 로드해도 이 문제는 발생하지 않습니다.
먼저 p5.js 및 moment-with-locales.js를 호출하고 다음과 같이 코드를 입력하면 결과가 나타납니다.
이 결과, 다른 언어로 된 「월명」을 표시했습니다.
코드를 확인하십시오.
var monthNameEnglish = moment().locale('en-gb').format('MMMM');
document.getElementById('monthNameEnglish').innerHTML = monthNameEnglish;
var monthNameGerman = moment().locale('de').format('MMMM');
document.getElementById('monthNameGerman').innerHTML = monthNameGerman;
<!DOCTYPE html>
<html>
<head>
<title>P5.js and Moment.js</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.16/p5.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.4/moment-with-locales.js"></script>
<h3>English Version Month Name</h3>
<p id="monthNameEnglish"></p>
<h3> German Version Month Name</h3>
<p id="monthNameGerman"></p>
</head>
<body>
</body>
</html>
모멘트(2.8.0 이후 버전)를 사용하여 로케일을 변경하려면 다음 절차를 따릅니다.
다음과 같이 index.local에 모멘트 로케일 파일을 로드합니다.
<script src="../node_modules/moment/locale/it.js"></script>
필요에 따라 로케일을 설정합니다.
moment.locale('it')
;지금이다
moment.locale()
"그것"을 반환한다.JavaScript, Angular, node 등의 언어로 모멘트를 사용할 수 있습니다.
moment.locale() 메서드를 사용하여 사용자 고유의 언어 ex를 전달할 수 있습니다.실행 시 window.navigator.language(예:en-US)를 사용하여 lange를 통과합니다.
const formatDate = date => moment(date).locale(window.navigator.language).format('LL')
언급URL : https://stackoverflow.com/questions/17493309/how-do-i-change-the-language-of-moment-js
'source' 카테고리의 다른 글
MySQL INSER JOIN은 두 번째 테이블에서 행을 하나만 선택합니다. (0) | 2023.01.15 |
---|---|
HikariPool-1 - 연결 획득 중 중단됨 (0) | 2023.01.15 |
JVM은 테일콜 최적화를 방해합니까? (0) | 2023.01.15 |
Okhttp3 - RequestBody.create(contentType, content)가 폐지되었습니다. (0) | 2023.01.15 |
PDO 연결 닫기 (0) | 2023.01.15 |