2016-07-05 3 views
0

Я столкнулся с небольшой проблемой форматирования с вводом a момента.Формат Moment.js am/pm для включения периодов/точек

a/A вернет AM/AM PM/PM, но есть ли способ форматировать это, чтобы включить периоды?

I.E. . это изменение формата, что важно для клиента, и я не смог найти исправление с документацией секундного

Я попытался

moment.updateLocale('en', { 
    meridiem : { 
     am : 'a.m.', 
     AM : 'A.M.', 
     pm : 'p.m.', 
     PM : 'P.M.' 
    } 
}); 

без успеха

Можно ?

ответ

4

Метод, который вы использовали для настройки meridiem, относится к версиям < 1.6.0. Вы должны предоставить функцию в новых версиях для обновления meridiem. Пожалуйста, смотрите the docs для получения дополнительной информации:

moment.updateLocale('en', { 
    meridiem: function(hour, minute, isLowerCase) { 
    if (hour < 12) { 
     return 'a.m.'; 
    } else { 
     return 'p.m.'; 
    } 
    } 
}); 
+0

Это то, что мне нужно было спасибо за объяснение. – gwar9

0

Карта meridiem была в версиях 1.5.x и ниже, после 1.6.0 меридием является функцией, которая возвращает значение (см. link).

2

После момента docs вы можете иметь следующее:

moment.updateLocale('en', { 
 
    meridiem: function (hour, minute, isLowercase) { 
 
    if(hour >= 12) 
 
     return isLowercase ? 'p.m.' : 'P.M.'; 
 
    else 
 
     return isLowercase ? 'a.m.' : 'A.M.'; 
 
    } 
 
}); 
 
console.log(moment().hour(1).format('HH:mm a')); 
 
console.log(moment().hour(15).format('HH:mm A'));
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>

Как указано в документации, с момента версии 1.6.0

Locale#meridiem должна быть функцией обратного вызова, которая возвращает правильную строку в зависимости от часа, минуты и верхнего/нижнего регистра.

В то время как на версии перед тем 1.6.0:

Locale#meridiem была карта верхнего и нижнего регистра версий AM/PM.

0

на основе @ user4040648 ответа здесь, как вы можете реализовать его в ES6

moment.updateLocale('en', { 
     meridiem(hour, minute, isLowerCase) { 
      return hour < 12 ? 'a.m.' : 'p.m.'; 
     } 
    }); 
Смежные вопросы