簡體   English   中英

在Moment.js中格式化longDateFormat

[英]Format longDateFormat in Moment.js

我問了一個關於通過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.';
       }
    }
});

現在我遇到了一個問題,我需要對longDateFormat字符串進行相同類型的格式化。

字符串為"h:mm:ss a" ,返回的時間為當前時間,但AM / PM為大寫

我需要當前返回的時間,但輸入應格式化為ampm

目前文檔longDateFormat是一個對象而不是一個函數,我將如何在此處格式化該子午線?

********************編輯****************

這是我的問題的一個例子。

meridiem設置在使用haz輸入時可以正常工作。 它是小寫字母,並且帶有句點。 在此處輸入圖片說明

meridiem設置不會影響longDateFormat字符串。 上午/下午始終是大寫字母,沒有句點。 無論我是否更改了最初應用的子午線設置。 我該如何更改?

HTML 在此處輸入圖片說明

{{last_update|date:"MMMM d, y 'at' h:mm:ss a"}}.

結果 在此處輸入圖片說明

Last updated on July 6, 2016 at 8:25:00 AM.

謝謝

由於使用的是角度,因此必須使用角度矩才能利用指令和過濾器中的矩量。

angular-moment提供了一個amDateFormat過濾器,該過濾器使用 docs所說的moment.js format()方法格式化日期 以下代碼可以幫助您獲得所需的東西:

 angular.module('MyApp',['angularMoment']) .run(function(){ moment.locale('en', { meridiem: function(hour, minute, isLower) { if (hour < 12) { return isLower ? 'am' : 'AM'; } else { return isLower ? 'pm' : 'PM'; } } }); }) .controller('AppCtrl', function($scope) { $scope.last_update = new Date(); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-moment/0.10.3/angular-moment.min.js"></script> <div ng-app="MyApp" ng-controller="AppCtrl"> With angular default date filter: <br/> {{last_update|date:"MMMM d, y 'at' h:mm:ss a"}} <br/> With angular-moment date filter: <br/> {{last_update|amDateFormat:'dddd, MMMM Do YYYY, h:mm:ss a'}} </div> 

在您的示例中,您正在使用角度默認日期過濾器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM