2014-10-07 34 views
0

我有一個包含許多其他屬性日期一類:添加AM/PM爲timestamp

Class example { 
    Date lastUpdate; 
} 

所以每次有變化我通過

lastUpdate = new Date(); 

更新LASTUPDATE來獲得新的時間郵票。在數據庫中,它被正確更新爲02-OCT-14 12.20.35.559000000 PM。但是,當我嘗試通過調用example.lastUpdate使用angular JS在UI上顯示它時,它僅顯示10/02/2014 12:20:35。我需要知道這是AM還是PM,我該如何補充?

+0

看看momentjs。在JS中處理日期是一個很棒的庫。格式是您想要閱讀的功能。 – 2014-10-07 18:09:14

+0

wouldnt格式角Js日期工作? – krs8785 2014-10-07 18:25:22

回答

1

你可以創建和使用Angular你自己的角度過濾器爲這個,讓我們稱之爲AMPMDateFormat,你可以用這種方式{{example.lastUpdate | AMPMDateFormat}}顯示當前顯示值的下一個AM或PM值。

var app = angular.module('your-app', []); 

app.filter("AMPMDateFormat", function() { 
    return function(input) { 

     //here you can use [Moment.js][1] 
     return moment(input).format(); 

     //or you can parse the input value by yourself 
     //something like this 

     var parts = input.split(' '); 

     var datePart = parts[0]; 

     var timeParts = parts[1].split(':'); 

     var hours = parseInt(timeParts[0]); 

     var meridian = (hours < 12) ? "AM" : "PM"; 

     if (hours == 0) hours = 12; 

     if (hours > 12) hours -= 12; 

     return datePart + ", " + hours + ":" + timeParts[1] + " " + meridian; 

    } 
}); 

希望這會有所幫助。 !重要。請在代碼中全部取決於輸入值的格式。我假設輸入格式將始終爲「dd/MM/yyyy hh:mm:ss」,就像您所說的那樣,它是當前顯示的方式。如果格式是其他此代碼不起作用!但這個想法仍然有效。

+0

只是reliassed這確實添加上午/下午但不正確。其PM現在增加AM而不是 – krs8785 2014-10-07 20:40:55

+0

我很困惑如何通過查看10:20:53來決定它的AM/Pm?它可以是任何權利 – krs8785 2014-10-07 20:49:35

+0

我通過查看10:20:53確定它是'AM',如果我看到22:20:53,'PM'就會出現。我決定這是因爲我的輸入必須有軍事時間格式或24小時制。如果您有12小時制時鐘,則必須將AM/PM信息附加到您的輸入,否則無法知道它是AM還是PM – sergio 2014-10-08 13:12:10

1

Angularjs允許您在界面中設置日期的格式。有關更多信息,請參閱此documentation

因此,你並不需要一個功能來做到這一點。你可以在你的HTML中設置它的格式。

示例控制器片段:

angular 
    .module("myApp") 
    .controller('MyController', 
    [ '$scope', function($scope) { 

     $scope.myDate = new Date();  
    }] 
); 

例UI片段:

<p>{{myDate | date:'yyyy-MM-dd HH:mm:ss a'}}</p> 

在上文中,myDate是在控制器中的日期,這將在HTML格式顯示給出。 a部分是AM/PM標記。因此,該值將如下所示:2014-10-07 10:10:02 AM

+0

我不想更新控制器中的日期。我已經有更新的日期只是爲了打印AM/PM – krs8785 2014-10-07 19:18:44

+0

我很困惑你的問題。你想在任何地方顯示日期嗎? – whyceewhite 2014-10-07 22:44:04

+0

是在使用Angualr JS的用戶界面上是的 – krs8785 2014-10-08 12:19:35

相關問題