2016-11-23 140 views
0

我無法使用AngularJS內置過濾器格式化日期。我收到的日期 - 時間字符串的日期對象:AngularJS日期格式

{ 
    'from_date' : '2016-10-01T00:00:00.000Z' 
    'to_date': '2016-10-31T23:59:59.999Z' 
} 

我用下面的代碼在HTML

<span class="from-date">{{date.from_date | date:'MM/dd/yyyy'}}</span> 
<span class="to-date">{{date.to_date | date:'MM/dd/yyyy'}}</span> 

目前我收到'10/01/2016' 和「 11/01/2016'分別。我希望日期分別顯示爲'10/01/2016'和'10/31/2016'。

+0

**我想你是在將日期保存到數據庫時不關心時區**如果你看看你的日期和什麼anguar過濾器在做,它是正確的。你必須確保從服務器返回的日期應該是正確的:) –

回答

0

由於您的結束日期非常接近11/01,因此我認爲您會一直保持這種效果,除非您通過自定義過濾器來消除時間。

正則表達式過濾器可能是一個很好的選擇只捕獲日期。

你確定一直得到這個日期格式嗎?

如果是這樣,

^(\d{4}-\d{2}-\d{2})T\d{1,2}:\d{1,2}:\d{1,2}(?:\.\d{0,3})?Z$ 

將讓你第一個捕獲組

+0

不,我不確定日期對象會一直這樣。 –

+1

你也可以嘗試@Ilan Frumer從這篇文章的方法:http://stackoverflow.com/questions/21133776/ignore-time-zone-angularjs首先讓時間報告「免費的時區」 – wzr1337

0

http://momentjs.com/

Moment.js可以幫助你的問題的日期。它可以通過使用該庫來掩蓋任何種類的日期格式。你可以在控制器中創建一個函數使用庫,然後你在過濾器中調用它