收藏
回答

时间格式化怎么显示NaN/NaN/NaNNaN/:NaN?

这个问题求解,图片如下

js代码:

// pages/index/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
   day:5
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    var time=new Date(2022,6,29,14,39,23).toLocaleString();
    this.setData({
      time:time
    })
  },
wxml代码
<!--pages/index/index.wxml-->
<wxs src="../utils/util.wxs" module="utils" />
<view>{{utils.timeFormat(time)}}</view>
wxs代码

var timeFormat = function(time){
  var date = getDate(time);
  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
}
回答关注问题邀请回答
收藏

2 个回答

  • 蓝天☁
    蓝天☁
    2022-07-29

    打印出来之后有个undefined,不知道这是啥情况

    2022-07-29
    有用
    回复
  • 微盟
    微盟
    2022-07-29

    可以检查看看getDate方法返回的结果

    2022-07-29
    有用
    回复 4
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-07-29
      谢谢,我回去试下
      2022-07-29
      回复
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-07-30
      console.log(time)时,调试器提示[wxs Runtime info] undefine [wxs Runtime info] 2022/11/29/ 上午10:39:23 console.log(date)时,调试器提示[wxs Runtime info] Invalid Date,这是什么原因?
      2022-07-30
      回复
    • 微盟
      微盟
      2022-07-31
      你可以在wxs里面console输出看情况,new Date(2022,6,29,14,39,23).toLocaleString()改为:new Date(2022,6,29,14,39,23).getTimes()就可以了
      2022-07-31
      1
      回复
    • 蓝天☁
      蓝天☁
      发表于移动端
      2022-07-31回复微盟
      谢谢,摸拟器显示正常了,调试器显示了一串数字1659255000000
      2022-07-31
      回复
登录 后发表内容