Форматирование даты с арабского на английский с помощью momentjs

#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>