Moment.js amDateFormat总是我在我的应用程序中使用Moment.js和Angular-moment从1970年
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年
<td class="timespan">{{tag.added_epoch | amDateFormat:'dddd, MMMM Do YYYY'}}</td>
这就是tag.added_epoch
值added_epoch: 1432252800
然而,当我转换它在线,我得到正确的日期:
任何想法,为什么我的过滤器正在转向1432252800
为周六,1970年1月17日?
我只是很快总结问题和解决方案。
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}}
试着写自己的过滤器,像这样:
newapp.filter("fromTimestamp", function(){
return function(timestamp, format){
return moment.unix(timestamp).format(format)
}
})
,并利用它们
<p class="date">{{date | fromTimestamp:'dddd, MMMM Do YYYY'}}</p>
谢谢! +1超级干净:)然而,Arminmsg确实回答了我确切的问题,但您的解决方案实际上可能用于替换我们的代码。 –
@LeonGaban感谢+1) –
你试过'moment.unix()'在角时刻这将是'' – Arminmsg
我得到这个错误'未知的提供者:amFromUnixFilterProvider
我已经快速浏览过moment.js,如果我只是使用'moment(1432252800)'我得到了1970他1970年的日期与'unix'方法我得到了2015年的日期,所以你的数字似乎是正确的。 来自角度矩文档: 注意:要使用amFromUnix,请安装angular-moment版本1.0.0-beta.3 – Arminmsg