收藏
回答

获取真实的数据,时间显示NaN/NaN/NaN NaN:NaN,求大师帮忙 ?

console.log(time)显示信息如下


wxs代码:
var timeFormat = function(time){
  // console.log(time);
  var date = getDate(time);
  console.log(date);
  var date_seconds = date.getTime() / 1000;
  var now = getDate();
  var now_seconds = now.getTime() / 1000;
  var timestamp = now_seconds - date_seconds;
  var timeStr = "";
  if(timestamp < 60){
    timeStr = "刚刚";
  }else if(timestamp >= 60 && timestamp < 60 * 60){
    var minutes = parseInt(timestamp / 60);
    timeStr = minutes + "分钟前";
  }else if(timestamp >= 60 * 60 && timestamp < 60 * 60 * 24){
    var hours = parseInt(timestamp / 60 / 60);
  timeStr = hours + "小时前";
  }else if(timestamp >= 60 * 60 * 24 && timestamp < 60 * 60 * 24 * 30){
    var days = parseInt(timestamp / 60 / 60 / 24);
    timeStr = days + "天前";
  }else{
    var year = date.getFullYear();
    var month = date.getMonth();
    var day = date.getDate();
    var hour = date.getHours();
    var minute = date.getMinutes();
    timeStr = year + "/" + month + "/" + day + " " + hour + ":" + minute;
  }
  return timeStr;
}
module.exports={
  timeFormat:timeFormat,
}
wxml代码
<!--index.wxml-->
<wxs src="../../utils/util.wxs" module="util"/>
<view class="container">
 
  <view class="weibo-group" wx:for="{{weibos}}" wx:key="weibos" wx:for-item="weibo">
    <view class="user-group">
      <image class="avatar" src="{{weibo.author.avatarUrl}}"></image>
      <view class="right-info">
        <view class="username">{{weibo.author.nickName}}</view>
        <view class="detail-info">
          <view class="time">{{util.timeFormat(weibo.cretae_time)}}</view>
          <view class="from">来自{{weibo.device}}</view>
        </view>
      </view>
    </view>
云函数代码:
return await db.collection("weibo").add({
      data:{
        content:content,
        location:location,
        author:author,
        images:images,
        video:video,
        cretae_time:db.serverDate(),
        device:device
      }
    })
回答关注问题邀请回答
收藏

8 个回答

  • 贾雷
    贾雷
    2022-08-02

    实在不行别用wxs了,在list中直接转换成你想要的值吧

    2022-08-02
    有用
    回复 2
    • 贾雷
      贾雷
      2022-08-02
      array.forEach(e =>){
       e.time = timeFormat(new Data(time));
      }
      然后直接用time,这种不知道是不是你想要的结果
      2022-08-02
      回复
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-02
      我在想,这个wxs是不是坑太多了
      2022-08-02
      回复
  • 蓝天☁
    蓝天☁
    2022-08-01

    2022-08-01
    有用
    回复 6
    • 尐飞魚คิดถึง
      尐飞魚คิดถึง
      2022-08-02
      如果类型是字符串,你把他转化为标准时间字符串YYYY/MM/DD HH:mm:ss 再getDate(time)就行了
      2022-08-02
      回复
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-02
      要怎么改,这个截图是调试器,AppDate里面查看的
      2022-08-02
      回复
    • 澄c澄悦
      澄c澄悦
      2022-08-02
      这怎么看得出来是什么问题啊
      2022-08-02
      1
      回复
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-02回复澄c澄悦
      我在想,是不是wxs里面的time,和云开发数据库里面的cretae_time,两个值不一样,导致联系不上
      2022-08-02
      回复
    • 澄c澄悦
      澄c澄悦
      2022-08-02回复蓝天☁
      那就加打印 看看
      2022-08-02
      回复
    查看更多(1)
  • lucky
    lucky
    2022-08-01

    https://blog.csdn.net/m0_55681803/article/details/123899132

    2022-08-01
    有用
    回复
  • 澄c澄悦
    澄c澄悦
    2022-08-01
    看起来像cretae_time生成的就有问题呢,format函数应该是没有问题的
    
    2022-08-01
    有用
    回复 14
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-01
      这个要怎么弄
      2022-08-01
      回复
    • 澄c澄悦
      澄c澄悦
      2022-08-01回复蓝天☁
      是不是页面渲染的时候cretae_time还没生成好啊
      2022-08-01
      回复
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-01回复澄c澄悦
      在跟着视频学习的时候,只是在云函数代码中定义了这个,然后其他地方都没
      2022-08-01
      回复
    • 澄c澄悦
      澄c澄悦
      2022-08-01回复蓝天☁
      这里先写死"2022/8/1 17:00:00"试下呗~先排除是不是format函数的问题
      2022-08-01
      回复
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-01回复澄c澄悦
      写死没问题,数据正常
      2022-08-01
      回复
    查看更多(9)
  • Frank
    Frank
    2022-08-01

    这里打印一下 date ,看看是个啥

    2022-08-01
    有用
    回复 10
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-01
      Invlid date
      2022-08-01
      回复
    • Frank
      Frank
      2022-08-01回复蓝天☁
      所以你知道啥问题了不,date不对,就获取不到对应的值了
      2022-08-01
      回复
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-01回复Frank
      问题是大概知道在哪,就是不知道怎么弄
      2022-08-01
      回复
    • Frank
      Frank
      2022-08-01回复蓝天☁
      这里打印的截图来看下
      2022-08-01
      回复
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-01
      截图就是第二张图片
      2022-08-01
      回复
    查看更多(5)
  • 武曲心
    武曲心
    2022-08-01

    time先处理一下

     if (!time) return "";

    var reg = getRegExp("-", "g");

      time = time.replace(reg, '/');

      var date = getDate(time);

    2022-08-01
    有用
    回复 1
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-01
      报错了,time is not defined at timeFormat
      2022-08-01
      回复
  • 尐飞魚คิดถึง
    尐飞魚คิดถึง
    2022-08-01

    create_time是什么样的,是不是YYYY-MM-DD这种的?ios不能转化带-的,只能转化带/的

    2022-08-01
    有用
    回复 3
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-01
      这个是云函数代码,跟着视频教学写的
      2022-08-01
      回复
    • 尐飞魚คิดถึง
      尐飞魚คิดถึง
      2022-08-01回复蓝天☁
      打印一下传入的值
      2022-08-01
      回复
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-01回复尐飞魚คิดถึง
      这个在云函数里面打印不了,是不是还要在js里面定义这个
      2022-08-01
      回复
  • ⅴ
    2022-08-01

    这里是获取传入的时间的意思吗?这么写试试

    var date = new Date(time)

    还有这处,getDate()函数是哪里有定义吗

    2022-08-01
    有用
    回复 2
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-01
      wxs,不能用new Date
      2022-08-01
      回复
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-08-01回复蓝天☁
      在js里面写了这个代码,不起作用
      2022-08-01
      回复
登录 后发表内容