2016-01-29 4 views
4

http://plnkr.co/edit/5zxXEEz30t51yGhgYWVF?p=previewMoment.js amDateFormat всегда возвращался дату с 1970

Я использую Moment.js и Angular-moment в моем приложении.

По какой-то причине это превращающего все мои эпох метки времени в тот же день с 1970 года

enter image description here

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

Это то, что значение tag.added_epoch является added_epoch: 1432252800

Однако при конвертировании он онлайн, я получаю правильную дату:

enter image description here

Любая идея, почему мой фильтр превращается в 1432252800субботу, 17 января 1970?

+1

вы пробовали 'moment.unix()' в угловой момент будет '< span am-time-ago = "message.unixTime | amFromUnix"> ' – Arminmsg

+1

Я получаю эту ошибку' Неизвестный поставщик: amFromUnixFilterProvider <- amFromUnixFilter' выглядит так, как будто мне нужно использовать другую версию lib :(но мои ли цифры правильные? –

+1

Я быстро посмотрел на moment.js, и я получу 1970, если я просто использую 'moment (1432252800)' Я получаю t он 1970 дата с методом 'unix', я получаю дату 2015 года, поэтому ваши цифры кажутся правильными. Из документа с угловым моментом: Примечание: Чтобы использовать amFromUnix, установите угловой момент версии 1.0.0-beta.3 – Arminmsg

ответ

7

Я просто быстро суммирующий проблемы и решения.

Moment.js предлагает два разных способа создать дату из метки времени unix moment(1432252800) и moment.unix(1432252800).

Оба запускаются одновременно (1 января 1970 года 12:00 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) –