Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Moment.js中格式化longDateFormat_Javascript_Angularjs_Datetime_Momentjs - Fatal编程技术网

Javascript 在Moment.js中格式化longDateFormat

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.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 {
          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.