【发布时间】:2014-03-14 15:35:27
【问题描述】:
我正在尝试在我的 Angular 应用程序上显示一些具有自定义格式的日期:我希望看到“1 小时前”、“2 天前”......而不是实际时间,所以我正在考虑使用过滤器来做到这一点。
我的日期存储在 MongoDb 中,因此我将它们作为 ISODate 接收:
ISODate("2014-03-13T10:48:02.991Z")
基本上我想将此函数应用于我的日期:
function timeSince(ts){
now = new Date();
ts = new Date(ts*1000);
var delta = now.getTime() - ts.toString().getTime();
delta = delta/1000; //us to s
var ps, pm, ph, pd, min, hou, sec, days;
if(delta<=59){
ps = (delta>1) ? "s": "";
return delta+" second"+ps
}
if(delta>=60 && delta<=3599){
min = Math.floor(delta/60);
sec = delta-(min*60);
pm = (min>1) ? "s": "";
ps = (sec>1) ? "s": "";
return min+" minute"+pm+" "+sec+" second"+ps;
}
if(delta>=3600 && delta<=86399){
hou = Math.floor(delta/3600);
min = Math.floor((delta-(hou*3600))/60);
ph = (hou>1) ? "s": "";
pm = (min>1) ? "s": "";
return hou+" hour"+ph+" "+min+" minute"+pm;
}
if(delta>=86400){
days = Math.floor(delta/86400);
hou = Math.floor((delta-(days*86400))/60/60);
pd = (days>1) ? "s": "";
ph = (hou>1) ? "s": "";
return days+" day"+pd+" "+hou+" hour"+ph;
}
}
我怎样才能简单地使用过滤器来做到这一点?
谢谢
【问题讨论】:
-
如果你不打算自己做这个,有一个library that wraps moment.js
标签: javascript angularjs mongodb date