2013-07-09 48 views
1

我有一個表,我的網頁上有以下幾點:AngularJS與| |混淆日期:「短」不能做出正確的日期

<td class="spotted-border">{{ row.modifiedDate | date:'short' }}</td> 
<td class="spotted-border">{{ row.modifiedDate }}</td> 

當我打開一個模式,修改的內容,發佈的數據,並替換現有的數據我發現第二個日期設置正確,但第一個日期/時間通常不正確。以下是在晚上10點22分和下午10點27分進行更改的輸出。

7/9/13 11:02 PM 2013-07-09T22:22:22.2425232+08:00 

7/10/13 12:19 AM 2013-07-09T22:27:55.6705942+08:00 

看來日期:'短'並不像預期的那樣工作。當我使用Chrome調試時,我看到返回正確的日期。

回答

1

EcmaScprit規範不允許日期值中的精度過高,並且您在應用「簡短」日期過濾器時會看到此結果。

任何超過3精度的順序(webkit做5),你會遇到這個問題。

<div ng-app ng-init="modifiedDate = '2013-07-09T22:22:22.2425232+08:00'"> 
    <input type="text" ng-model="modifiedDate"/> 

    <h1>{{ modifiedDate | date:'short' }}</h1> 

    <h1>{{ modifiedDate }}</h1> 
</div> 

Example showing the problem

如果截斷至5你的約會顯示正確顯示。

2013-07-09T22:22:22.24252 + 08:00

Working Example

More information from google group

+0

馬克 - 非常感謝。我的日期來自C#question.ModifiedDate = DateTime.Now;我想可能很多其他人會遇到這個相同的問題,所以希望問題可以記錄下來。我將研究如何解決服務器上的問題。很遺憾,AngularJS方面的問題已經關閉,沒有提到在文檔中放置一個註釋。 – Alan2