我问了一个关于通过Moment.js meridiem函数格式化AM/PM的问题。顺便说一句,我使用的版本2.9在Moment.js中格式化longDateFormat
我成功地加入时期的AM/PM的输入,并使用该
moment.locale('en', {
meridiem: function(hour, minute, isLower) {
if (hour < 12) {
return isLower ? 'a.m.' : 'A.M.';
} else {
return isLower ? 'p.m' : 'P.M.';
}
}
});
现在我遇到了一个问题,采用小写的,我需要做同样的longDateFormat
字符串的格式类型。
的字符串是"h:mm:ss a"
和返回时间将当前时间,但有一个大写的AM/PM
我需要返回当前时间,但一个输入格式应下午上午
在当下docs longDateFormat是一个对象不是函数我怎么会去格式化meridiem在这里?
******************** EDIT ****************
下面是一个例子我的问题。
meridiem设置正常工作与一个h z输入。它是小写字母并有句点。
meridiem设置不会影响longDateFormat字符串。上午/下午总是大写,没有句点。无论我是否改变最初应用的meridiem设置。我该如何改变这一点?
{{last_update|date:"MMMM d, y 'at' h:mm:ss a"}}.
Last updated on July 6, 2016 at 8:25:00 AM.
感谢
答案在你以前的问题:)。如果您使用[接受的答案](http://stackoverflow.com/a/38204712/4131048),您将始终有** a.m./p.m。**小写。如果您使用[我的答案](http://stackoverflow.com/a/38204793/4131048),您将有** a.m./p.m。**案件感知(取决于格式中的“a”或“A”)。如果你设置了'A'(反向默认逻辑),你的代码片段返回** AM/PM **,如果你指定格式为'a'并且** a.m./p.m。** – VincenzoC
Hi @VincenzoC我没有关注你。即使设置了meridiem,longDateFormat也不正确。longDateFormat a返回一个始终大写的AM PM,不包含句点 – gwar9
如果删除'meridiem'定制,会发生什么情况?在我看来,由于meridiem函数中的三元运算符,您将得到** AM/PM **大写。当格式包含小写'a'时,'isLowerCase'为'true',而当您使用大写'A'时,'isLowerCase'为'false'。删除'isLowerCase'检查应该可以解决您的问题。也许你可以添加一个片段,重现你的问题,进一步澄清你的问题。 – VincenzoC