收藏
回答

模拟器与手机上的时间不一直

问题模块 框架类型 问题类型 操作系统 操作系统版本 手机型号 微信版本
客户端 小程序 Bug iOS windows7 iphone7 6.7.2

自己模拟器上看,是这样的

但是预览到手机的时候,发现就不是 5小时前,而是“刚刚”。


查了电脑的事区设置以及手机上的时区设置,都是一样的。有没有人碰到过。

自己debug了一下:


'pubDate': getDateDiff(new Date(item['pubDate']).getTime()),


发现是getDateDiff这个函数引起的,如果没有用这个函数,两边的显示是一致的。各位大侠帮忙看下getDateDiff有啥问题,这个函数也是网上找的。

function getDateDiff(dateTimeStamp) {

  var result;

  var minute = 1000 * 60;

  var hour = minute * 60;

  var day = hour * 24;

  var halfamonth = day * 15;

  var month = day * 30;

  var now = new Date().getTime();

  var diffValue = now - dateTimeStamp;

  if (diffValue < 0) {

    return;

  }

  var monthC = diffValue / month;

  var weekC = diffValue / (7 * day);

  var dayC = diffValue / day;

  var hourC = diffValue / hour;

  var minC = diffValue / minute;

  if (monthC >= 1) {

    if (monthC <= 12)

      result = "" + parseInt(monthC) + "月前";

    else {

      result = "" + parseInt(monthC / 12) + "年前";

    }

  }

  else if (weekC >= 1) {

    result = "" + parseInt(weekC) + "周前";

  }

  else if (dayC >= 1) {

    result = "" + parseInt(dayC) + "天前";

  }

  else if (hourC >= 1) {

    result = "" + parseInt(hourC) + "小时前";

  }

  else if (minC >= 1) {

    result = "" + parseInt(minC) + "分钟前";

  } else {

    result = "刚刚";

  }

  return result;

};




最后一次编辑于  2018-09-04
回答关注问题邀请回答
收藏

2 个回答

  • axian
    axian
    2018-09-05

    2018-09-04 19:11:10

    这种格式

    2018-09-05
    赞同
    回复
  • 再见,电脑崽
    再见,电脑崽
    2018-09-05

    请告诉我你的 item['pubDate'] 的值是什么格式的?你随便打印一个看看。

    2018-09-05
    赞同
    回复 1
    • 再见,电脑崽
      再见,电脑崽
      2018-09-05
      <text class='time'>{{format.date(item.pubDate)}}</text>
      <wxs module='format'>
          var date = function(t) {
              var regexp = getRegExp('-', 'g');
              t = t.replace(regexp, '/');
              var now = getDate().getTime();
              var time = getDate(t).getTime();
              if (time > now) {
                  return '刚刚';
              } else {
                  var e = Math.round((now - time) / 1000);
                  if (e < 60) return '刚刚';
                  else if (e < 1800) return Math.round(e / 60) + '分钟前';
                  else if (e < 3600) return '半小时前';
                  else if (e < 86400) return Math.round(e / 3600) + '小时前';
                  else if (e < 86400 * 7) return Math.round(e / 86400) + '天前';
                  else if (e < 86400 * 30) return Math.round(e / (86400 * 7)) + '周前';
                  else if (e < 86400 * 365) return Math.round(e / (86400 * 30)) + '个月前';
                  else return Math.round(e / (86400 * 365)) + '年前';
              }
              return '';
          };
          module.exports = {
              date: date
          };
      </wxs>


      2018-09-05
      回复