Estoy tratando de cambiar el idioma de la fecha establecida por moment.js. El predeterminado es el inglés, pero quiero configurar el idioma alemán. Esto es lo que probé:
var now = moment().format("LLL").lang("de");
Está dando NaN
.
var now = moment("de").format("LLL");
Esto ni siquiera está reaccionando.
var now = moment().format("LLL", "de");
Sin cambios: esto sigue produciendo un resultado en inglés.
¿Cómo es esto posible?
javascript
momentjs
doniyor
fuente
fuente
Respuestas:
Necesita moment.lang ( ADVERTENCIA :
lang()
está en desuso desde el momento2.8.0
, uselocale()
en su lugar):http://momentjs.com/docs/#/i18n/
A partir de v2.8.1,
moment.locale('de')
establece la localización, pero no devuelve amoment
. Algunos ejemplos:En resumen, llamar
locale
al globalmoment
establece la configuración regional para todas lasmoment
instancias futuras , pero no devuelve una instancia demoment
. Al llamarlocale
a una instancia, la establece para esa instancia Y devuelve esa instancia.Además, como dijo Shiv en los comentarios, asegúrese de usar "moment-with-locales.min.js" y no "moment.min.js", de lo contrario no funcionará.
fuente
var deMoment = moment(); deMoment.lang('de')
como reutilizar endeMoment
lugar de un momento a lo largo de su secuencia de comandos.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')
Tuve que importar también el idioma:
Luego usa el momento como lo harías normalmente
fuente
import 'moment/locale/es'
require("moment/min/locales.min");
o usar importimport 'moment/min/locales.min'
Método más rápido: instalar con Bower
Acabo de instalar moment con bower y lo vinculé
de.js
como recurso de JavaScript en mi proyecto html.bower install moment --save
También puede descargar manualmente el
moment.js
yde.js
.Enlace 'de.js' en su proyecto
Al vincular el
de.js
archivo de mi proyecto principal, se cambió automáticamente la configuración regional para todos los accesos a la clase de momento y sus métodos.Ya no será necesario hacer una
moment.locale("de").
omoment.lang("de").
en el código fuente.Simplemente vincule la configuración regional deseada de esta manera:
O puede vincular las bibliotecas sin la
bower_components
ruta, si descargó el estilo de los años 90 de moment.js haciendo clic con el botón derecho, que todavía funciona bien en la mayoría de los escenarios.fuente
<script src="/bower_components/moment/locale/de.js"></script>
. Funciona para mí en este momento.Con momentjs 2.8+, haga lo siguiente:
http://momentjs.com/docs/#/i18n/
fuente
moment.locale('de')
, y crea un nuevo objeto que representa la fecha de ahora pormoment()
(observe el paréntesis) y luegoformat('LLL')
. El paréntesis es importante. Probado en 2.20. Además, recuerde usarmoment-with-locale.js
y, si es necesario, cambie el nombre para que seamoment.js
. Django simplemente se niega a cargarmoment-with-locale.js
en mi caso.moment().locale('de').format('LLL');
Tendría que agregar
moment.lang(navigator.language)
su script.Y también debe agregar la configuración regional de cada país en el que desea mostrar: por ejemplo, para GB o FR, debe agregar ese formato de configuración regional en la biblioteca moment.js. Un ejemplo de dicho formato está disponible en la documentación de momentjs. Si no agrega este formato en moment.js, SIEMPRE seleccionaría la configuración regional de EE. UU., Ya que es la única que veo actualmente.
fuente
finales de 2017/2018: las otras respuestas tienen demasiado código antiguo para editar, así que aquí mi respuesta limpia alternativa:
con requieren
con importaciones
Utilizar:
con zona horaria
*exigir:
*importar:
zonas de uso:
función para formatear fecha
fuente
import moment from 'moment/min/moment-with-locales';
PARA USUARIOS DE METEOR:
los locales de momento no se instalan de forma predeterminada en meteor, solo obtiene el entorno local 'en' con la instalación predeterminada.
Entonces usa el código como se muestra correctamente en otras respuestas:
pero permanecerá en inglés hasta que instale la configuración regional que necesita.
Hay una manera agradable y limpia de agregar configuraciones regionales individuales por un momento en meteorito (suministrado por rzymek ).
Instale el paquete de momento de la forma habitual de meteorito con:
Luego, simplemente agregue las configuraciones regionales que necesita, por ejemplo, para italiano:
O si realmente desea agregar todas las configuraciones regionales disponibles (agrega aproximadamente 30k a su página):
fuente
rzymek:moment-locale-de
y funcionó :)Con el momento 2.18.1 y en adelante:
fuente
Manifestación
fuente
Como estaba usando webpack con trago y amigos ( este generador configuró todo para mí) tuve que hacer un cambio en el archivo bower.json. Tuve que anular la importación predeterminada para el paquete de momento y seleccionar el archivo que viene con todos los idiomas:
Este es mi archivo bower.json completo:
fuente
Estoy usando angular2-moment, pero el uso debe ser similar.
fuente
Cambie el momento js idioma según la versión
Versión: 2.8+
moment.locale ('hola');
Versión: 2.5.1
moment.lang ('hola');
fuente
funciona bien así:
return moment(status.created_at).locale('es').fromNow();
fuente
No estoy seguro de qué cambió, pero importar el archivo de idioma como este funcionó para mí
Observe el src en la declaración de importación
fuente
para momentjs 2.12+ , haga lo siguiente:
También tenga en cuenta que debe usar
moment.updateLocale(localeName, config)
para cambiar una configuración regional existente.moment.defineLocale(localeName, config)
solo debe usarse para crear una nueva configuración regional.fuente
Para mí, hay algunos cambios que hacer (ver. 2.20)
moment.locale('de')
, y crea un nuevo objeto que representa la fecha de ahora pormoment()
(observe el paréntesis) y luegoformat('LLL')
. El paréntesis es importante.Entonces eso significa:
moment-with-locale.js
. El archivo contiene toda la información local y tiene un tamaño de archivo más grande. Descargar lalocale
carpeta no es suficiente. Si es necesario, cambie el nombre para sermoment.js
. Django simplemente se niega a cargarmoment-with-locale.js
en mi caso.EDITAR: Resultó que cambiar el nombre del archivo no es necesario. Simplemente olvidé invocarlo en la página, así que Django no cree que sea necesario cargarlo, así que es mi culpa.
fuente
Este solo funciona mediante la detección automática de la ubicación actual del usuario.
fuente
Vaya resbalón de la pluma. Solucionaría esto: las
var moment = function(x) { return moment(x).locale('de'); }
otras formas realmente no parecen pegarse / mantenerse bajo condiciones (para mí).fuente
Para aquellos que trabajan en entornos asíncronos, se
moment
comporta de forma inesperada al cargar configuraciones regionales a pedido.En vez de
invertir el orden
Parece que las configuraciones regionales se cargan en la configuración regional seleccionada actual, anulando cualquier información de configuración regional previamente establecida. Entonces, cambiar la configuración regional primero y luego cargar la información de la configuración regional no causa este problema.
fuente
Después de luchar, esto funcionó para mí para
moment
v2.26.0:Puedes pasar
en
,fr
oes
. Si quisieras otro idioma, deberías importar la configuración regional y agregarla a la matriz.Si solo necesita admitir un idioma, es un poco más simple:
fuente