js标准时间格式怎么转换,而且时间为什么差几个小时?

模板date里显示的 "2019-09-20T01:34:54.510Z" 还带冒号,请问怎么转成 2019-09-20 01:34:54,而且它时间不准,是外国的时间吗?感谢啦

<template>
    <div>
        <p>{{date}}</p>
    </div>
</template>

<script>
export default {
    data() {
        return {
            date: new Date(),
        };
    },
    beforeDestroy() {
        if (this.timer) {
            clearInterval(this.timer); // 在Vue实例销毁前,清除我们的定时器
        }
    }
};
</script>
阅读 2.4k
3 个回答

定义一个时间格式化函数dateFormat,在created里面初始化。
我这里时间是准确的,你可以写在mounted试试

<template>
    <div>
        <p>{{date}}</p>
    </div>
</template>

<script>
export default {
    data() {
        return {
            date: "",
        };
    },
    methods: {
       dateFormat(oldDate, fmt) {
          if(Object.prototype.toString.call(oldDate) === '[object String]') {
            oldDate = oldDate.replace(new RegExp(/-/gm),"/")
          }

          var date = new Date(oldDate);
          var o = {
            "M+": date.getMonth() + 1,                   //月份
            "d+": date.getDate(),                        //日
            "h+": date.getHours(),                       //小时
            "m+": date.getMinutes(),                     //分
            "s+": date.getSeconds(),                     //秒
            "q+": Math.floor((date.getMonth() + 3) / 3), //季度
            "S": date.getMilliseconds()                  //毫秒
          };
          if (/(y+)/.test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
          }
          for (var k in o) {
            if (new RegExp("(" + k + ")").test(fmt)) {
              fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
            }
          }
          return fmt;
        }
    },
    created() {
      this.date = this.dateFormat(new Date(),'yyyy-MM-dd hh:mm:ss')
    },
    beforeDestroy() {
        if (this.timer) {
            clearInterval(this.timer); // 在Vue实例销毁前,清除我们的定时器
        }
    }
};
</script>
  1. 展示时需要自己格式化,最简单的就是把年月日时分秒拿出来,自己拼接成字符串。
  2. 时间是根据本机的时区来的,如果不准,可能是时区设置错了,或者你取得是UTC时间。
推荐问题
宣传栏