Javascript 在Moment.js中格式化longDateFormat
我之前问过一个问题,关于通过Moment.js meridiem函数格式化AM/PM。顺便说一句,我使用的是2.9版 通过使用this,我成功地将句点添加到AM/PM输入中并应用小写Javascript 在Moment.js中格式化longDateFormat,javascript,angularjs,datetime,momentjs,Javascript,Angularjs,Datetime,Momentjs,我之前问过一个问题,关于通过Moment.js meridiem函数格式化AM/PM。顺便说一句,我使用的是2.9版 通过使用this,我成功地将句点添加到AM/PM输入中并应用小写 moment.locale('en', { meridiem: function(hour, minute, isLower) { if (hour < 12) { return isLower ? 'a.m.' : 'A.M.'; } else {
moment.locale('en', {
meridiem: function(hour, minute, isLower) {
if (hour < 12) {
return isLower ? 'a.m.' : 'A.M.';
} else {
return isLower ? 'p.m' : 'P.M.';
}
}
});
结果
谢谢因为您使用的是angular,所以必须使用以利用指令和过滤器内部的力矩 angular moment提供了一个
amDateFormat
过滤器,该过滤器使用文档中提到的moment.js Format()方法格式化日期。
以下代码有助于实现您的愿望:
angular.module('MyApp',['angularmonent']))
.run(函数(){
矩.locale('en'{
梅里迪姆:功能(小时、分钟、岛屿){
如果(小时<12){
返回岛下?'a.m.:'a.m;
}否则{
返回岛下?'p.m.:'p.m;
}
}
});
})
.controller('AppCtrl',函数($scope){
$scope.last_update=新日期();
});代码>
带角度默认日期过滤器:
{{上次更新日期:{mmmd,y'at'h:mm:ss a}}
带角度力矩日期过滤器:
{{last_update}amDateFormat:'ddddd,MMMM Do YYYY,h:mm:ss a'}
答案在前面的问题中:)。如果使用,则始终使用小写字母a.m./p.m。如果您使用,您将具有a.m./p.m.区分大小写功能(取决于格式中的a
或a
)。如果在格式中指定a
,代码段将返回AM/PM;如果设置a
(反向默认逻辑),代码段将返回a.m./p.m.。Hi@VincenzoC我没有跟踪您。即使设置了meridiem,longDateFormat也不正确。longDateFormat a返回一个始终大写的AM PM,没有周期。如果删除meridiem
customization,会发生什么情况?在我看来,之所以使用AM/PM大写是因为meridiem
函数中的三元运算符。当格式包含小写a
时,isLowerCase
为true
,而当格式包含大写a
时,isLowerCase
为false
。删除isLowerCase
复选框可以解决您的问题。也许你可以添加一个片段来重现你的问题,以进一步澄清你的问题。@VincenzoC我更新了问题并发布了几张图片。对不起,我看不到图片,可能是上传时出了问题。无论如何,你的问题的一个代码示例要比一个屏幕截图好得多。非常感谢Vincenzo,正如你回答的那样,我意识到我使用的是angulars日期格式。角力矩是一个很好的解决方案。谢谢你的帮助!
{{last_update|date:"MMMM d, y 'at' h:mm:ss a"}}.
Last updated on July 6, 2016 at 8:25:00 AM.