如何添加“大约几分钟前,大约几小时前,等等”;在 .filter 中用于 angular/ionic v1 项目

问题描述

我的问题是如何在 ionic v1 项目中为 wordpress 添加 JS 过滤器,而不是使用 UTC 日期。

我使用的是 wordpress 原生 ionic v1 应用,因此这对于获取应用中每个帖子的准确日期非常重要。

我不喜欢将日期显示为 UTC,因为它太长了.. 我只需要(1 小时前,年 .. 等)!!谢谢。

这是我的代码

.filter('timeAgo',function(){
return function timeAgo(time){
    switch (typeof time) {
        case 'number':
          break;
        case 'string':
          time = +new Date(time);
          break;
        case 'object':
          if (time.constructor === Date) time = time.getTime();
          break;
        default:
          time = +new Date();
      }
      var time_formats = [
        [60,'seconds',1],// 60
        [120,'1 minute ago','1 minute from Now'],// 60*2
        [3600,'minutes',60],// 60*60,60
        [7200,'1 hour ago','1 hour from Now'],// 60*60*2
        [86400,'hours',3600],// 60*60*24,60*60
        [172800,'Yesterday','Tomorrow'],// 60*60*24*2
        [604800,'days',86400],// 60*60*24*7,60*60*24
        [1209600,'Last week','Next week'],// 60*60*24*7*4*2
        [2419200,'weeks',604800],// 60*60*24*7*4,60*60*24*7
        [4838400,'Last month','Next month'],// 60*60*24*7*4*2
        [29030400,'months',2419200],// 60*60*24*7*4*12,60*60*24*7*4
        [58060800,'Last year','Next year'],// 60*60*24*7*4*12*2
        [2903040000,'years',29030400],// 60*60*24*7*4*12*100,60*60*24*7*4*12
        [5806080000,'Last century','Next century'],// 60*60*24*7*4*12*100*2
        [58060800000,'centuries',2903040000] // 60*60*24*7*4*12*100*20,60*60*24*7*4*12*100
      ];
      var seconds = (+new Date() - time) / 1000,token = 'ago',list_choice = 1;
    
      if (seconds == 0) {
        return 'Just Now'
      }
      if (seconds < 0) {
        seconds = Math.abs(seconds);
        token = 'from Now';
        list_choice = 2;
      }
      var i = 0,format;
      while (format = time_formats[i++])
        if (seconds < format[0]) {
          if (typeof format[2] == 'string')
            return format[list_choice];
          else
            return Math.floor(seconds / format[2]) + ' ' + format[1] + ' ' + token;
        }
      return time;
    }
    
    var aDay = 24 * 60 * 60 * 1000;
    console.log(time_ago(new Date(Date.Now() - aDay)));
    console.log(time_ago(new Date(Date.Now() - aDay * 2)));
    
}

我需要知道我的代码出了什么问题或错误在哪里?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)