#typescript #momentjs #locale
Вопрос:
Я пытаюсь отформатировать дату с арабского на английский, используя moment js
var mom = moment("٣٠/١١/٢٠٢٠","l", 'ar', true);
if(mom.isValid()) {
schedule.startTime.dateText= mom.locale('en').format('MM/DD/YYYY');
}
Это, похоже, не работает, я получаю значение mom как «Недопустимая дата». "٣٠/١١/٢٠٢٠"
является ли значение из бэкенда, как мне преобразовать в английский?
Ответ №1:
Просто попробуйте указать формат внутри moment, и он должен работать нормально.
Ссылка на песочницу кода: https://codesandbox.io/s/compassionate-bas-fg1c2?file=/src/index.js:61-169
const arabicDate = "٣٠/١١/٢٠٢٠";
console.log(moment(arabicDate, "YYYY/MM/DD").locale("en").format("YYYY/MM/DD"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/locale/ar-sa.js"></script>