vue 倒计时在ie内核的浏览器上时间显示为NAN是怎么回事。

其他浏览器上都可以正常显示,只有ie内核的显示NAN。
<template>

  <span>{{time}}</span>

</template>

<script>
export default{
data () {

   return {
       time : '',
       flag : false
   }

},
mounted () {

let time = setInterval(()=>{
  if(this.flag == true){
    clearInterval(time)
  }
  this.timeDown()
 },500)

},
props : {

   endTime : {
       type : String
   }

},
methods : {

   timeDown () {
       const endTime = new Date(this.endTime)
       const nowTime = new Date();
       let leftTime = parseInt((endTime.getTime()-nowTime.getTime())/1000)
       let d = parseInt(leftTime/(24*60*60))
       let h = this.formate(parseInt(leftTime/(60*60)%24))
       let m = this.formate(parseInt(leftTime/60%60))
       let s = this.formate(parseInt(leftTime%60))
       if(leftTime <= 0){
           this.flag = true
           this.$emit('timeend')
       }
       this.time = `${d}天${h}时${m}分${s}秒`
   },
   formate (time) {
       if(time>=10){
           return time
       }else{
           return `0${time}`
       }
   }

}
}
</script>

上面是处理时间的js

下面这是后台返回的时间格式
"2018-08-08 09:13:14"

阅读 3.7k
5 个回答
const endTime = new Date(this.endTime.replace(/-/g, '\/'))

timeDown函数的第一行加上let _this = this;,下面所有的this都用_this代替。

const endTime = new Date(this.endTime) IE 是不支持这句转化的
改由
const endTime= new Date(yyyy,MM,dd,hh,mm,ss)
来进行转化吧

ie不支持 2018-08-08 09:13:14这种格式
支持2018/08/08 09:13:14
图片描述

this.$emit('timeend')是干嘛用的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题