2015-06-15 2 views
5

Я использую следующий код для преобразования даты, полученной от формата базы данных MySQL 1993-10-23 00:00:00 и отображать его на испанском языке:MomentJS время в испанской

alert(moment('1993-10-23 00:00:00', 'YYYY-MM-DD', 'es')); 

23 ОКТА суббота. Я бы ожидать, чтобы получить sábado, но я получаю следующее:

Sat Oct 23 1993 00:00:00 GMT+0200 

попытался также добавил: moment.locale('es-ES');, moment.locale('en-ES'); и moment.locale('es'); , но ни работы.

Каков правильный способ преобразования дат с языка на другой?

+1

Вы используете синтаксис для разбора строки, не выводит его. Вы хотите [* moment() .format() *] (http://momentjs.com/docs/#/displaying/format/). Будьте осторожны с форматами ISO 8601, подобными форматам без часового пояса, они обрабатываются по-разному с помощью ES5 (UTC) и ES6 (локальный). – RobG

+0

@RobG спасибо, проверьте ответ, есть ли что-нибудь, что можно добавить для формата ISO? – Alpha2k

+0

ISO 8601 говорит, что даты с отсутствующим часовым поясом должны рассматриваться как локальные, тогда как ES5 говорит, чтобы рассматривать их как UTC. Изменения ES6 соответствуют ISO. Разумеется, вы должны использовать «1993-10-23T00: 00: 00Z», если хотите, чтобы он рассматривался как UTC. Добавьте требуемый часовой пояс, если вы хотите что-то еще, и проанализируйте его с помощью Moment.js (или напишите свою собственную 2 или 3-строчную функцию). Разбор Javascript будет обрабатывать только ISO 8601 UTC. – RobG

ответ

5

Это похоже на работу, благодаря @RobG

var localLocale = moment('1993-10-23 00:00:00'); 
moment.locale('es'); 
localLocale.locale(false); 
alert(localLocale.format('LLLL')); 
Смежные вопросы