2016-01-29 62 views
4

http://plnkr.co/edit/5zxXEEz30t51yGhgYWVF?p=previewMoment.js amDateFormat總是我在我的應用程序中使用<a href="http://momentjs.com/" rel="nofollow noreferrer">Moment.js</a>和<a href="https://github.com/urish/angular-moment" rel="nofollow noreferrer">Angular-moment</a>從1970年

返回日期。

出於某種原因,它是將我所有的紀元時間戳爲相同的日期從1970年

enter image description here

<td class="timespan">{{tag.added_epoch | amDateFormat:'dddd, MMMM Do YYYY'}}</td>

這就是tag.added_epochadded_epoch: 1432252800

然而,當我轉換它在線,我得到正確的日期:

enter image description here

任何想法,爲什麼我的過濾器正在轉向1432252800週六,1970年1月17日

+1

你試過'moment.unix()'在角時刻這將是'< span am-time-ago =「message.unixTime | amFromUnix」>' – Arminmsg

+1

我得到這個錯誤'未知的提供者:amFromUnixFilterProvider < - amFromUnixFilter'看起來像我需要使用不同版本的lib :(但我的數字是否正確? –

+1

我已經快速瀏覽過moment.js,如果我只是使用'moment(1432252800)'我得到了1970他1970年的日期與'unix'方法我得到了2015年的日期,所以你的數字似乎是正確的。 來自角度矩文檔: 注意:要使用amFromUnix,請安裝angular-moment版本1.0.0-beta.3 – Arminmsg

回答

7

我只是很快總結問題和解決方案。

Moment.js提供了兩種不同的方法來創建日期從一個unix時間戳 moment(1432252800)moment.unix(1432252800)

兩者都在同一時間開始(1970年1月1日上午12點UTC),但moment()使用的數字爲毫秒,約爲17天,moment.unix()使用秒。

角時刻支持amFromUnix過濾器,見source

您可以使用它通過以下方式

<time am-time-ago="myDate|amFromUnix"> 
{{myDate|amFromUnix|amCalendar}} 
2

試着寫自己的過濾器,像這樣:

newapp.filter("fromTimestamp", function(){ 
    return function(timestamp, format){ 
    return moment.unix(timestamp).format(format) 
    } 
}) 

,並利用它們

<p class="date">{{date | fromTimestamp:'dddd, MMMM Do YYYY'}}</p> 

Plunker demo

+0

謝謝! +1超級乾淨:)然而,Arminmsg確實回答了我確切的問題,但您的解決方案實際上可能用於替換我們的代碼。 –

+1

@LeonGaban感謝+1) –

相關問題