How do I change the language of moment.js?
I had to import also the language:
import moment from 'moment'
import 'moment/locale/es' // without this line it didn't work
moment.locale('es')
Then use moment like you normally would
console.log(moment(date).fromNow())
You need moment.lang (WARNING: lang()
is deprecated since moment 2.8.0
, use locale()
instead):
moment.lang("de").format('LLL');
http://momentjs.com/docs/#/i18n/
As of v2.8.1, moment.locale('de')
sets the localization, but does not return a moment
. Some examples:
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'
In summation, calling locale
on the global moment
sets the locale for all future moment
instances, but does not return an instance of moment
. Calling locale
on an instance, sets it for that instance AND returns that instance.
Also, as Shiv said in the comments, make sure you use "moment-with-locales.min.js" and not "moment.min.js", otherwise it won't work.