0001/01/01 非法时间格式和VUE接收/Date(1584956513000+0800)/时间数据的解决方法

案例:项目中读取数据库时断点跟踪发现数据正常,但是在接口给前端返回数据的时候出现500,前端无法接收到数据;

原因:经过确认是因为在接口的底层,时间类型为空的时候转换成0001/01/01 非法时间格式;

解决方法:在实体类的时间类型前加上问号,允许值类型为空

        /// <summary>
        /// 修改时间
        /// </summary>		
        private DateTime? _modify_date;
        public DateTime? MODIFY_DATE
        {
            get { return _modify_date; }
            set { _modify_date = value; }
        }

经过测试前端可以正常接收数据;

但是

前端接收到的数据是这种格式的 “/Date(1584956513000+0800)/”  显然不能作为展示数据;

因为本人前端用VUE所以使用 formatter  对数据进行格式化,代码:

<el-table-column
 property="_run_date" 
 label="日期" width="350" 
 :formatter="formatTime">
</el-table-column>
formatTime(row, column){
      var time = row[column.property];
      var t = time.slice(6, 19)
      var NewDtime = new Date(parseInt(t));
      var year = NewDtime.getFullYear();
      var month = NewDtime.getMonth() + 1;
      var date = NewDtime.getDate();
      var hour = NewDtime.getHours();
      var minute = NewDtime.getMinutes();
      var second = NewDtime.getSeconds();
      return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;        
    }
  },

代码也是在网上找的,在这里借花献佛了。

经过以上调整,页面展示OK,看看效果吧

 希望我的总结能够帮助大家,谢谢!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码实现如下: ``` <template> <div> <input type="text" v-model="inputDate" placeholder="请输入日期(格式:YYYY/MM/DD)"> <button @click="validateDate">校验</button> <div v-if="isValid">{{ inputDate }} 是有效的日期</div> <div v-else>{{ inputDate }} 不是有效的日期</div> </div> </template> <script> export default { data() { return { inputDate: '', isValid: false } }, methods: { validateDate() { const inputDateArr = this.inputDate.split('/') const year = parseInt(inputDateArr[0]) const month = parseInt(inputDateArr[1]) const day = parseInt(inputDateArr[2]) // 判断是否符合格式要求 if (inputDateArr.length !== 3 || isNaN(year) || isNaN(month) || isNaN(day)) { this.isValid = false } else { // 判断是否在1949/10/01到当前时间之间 const startDate = new Date('1949/10/01') const currentDate = new Date() const inputDate = new Date(this.inputDate) if (inputDate >= startDate && inputDate <= currentDate) { this.isValid = true } else { this.isValid = false } } } } } </script> ``` 在模板中,我们实现了一个输入框和一个“校验”按钮,用户输入日期并点击按钮会触发 validateDate 方法进行校验。校验结果通过一个布尔类型的 isValid 变量控制,如果校验通过,就显示“是有效的日期”,否则显示“不是有效的日期”。 在 validateDate 方法中,我们先将用户输入的日期按照“/”进行分割,得到年月日。如果分割出来的数组长度不为 3,或者分割出来的年月日不是数字类型,说明输入的格式不正确,校验失败。 如果格式正确,我们将分割出来的年月日组成一个 Date 类型的对象,再和开始时间(1949 年 10 月 1 日)和当前时间比较,如果在这两个时间之间,说明是有效的日期,校验成功;否则就是无效的日期,校验失败。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值