将 Date 类型数据转换成标准的 时间格式 YY-MM-DD HH:mm:SS


  在 前端 获得 Date 类型数据的途径主要由两种方式:

  • 在前端界面通过一些组件或者标签获取用户选择的 时间;
  • 在 js 通过 new Date 的方式,创建获取当前时间的变量;
  • 在调用接口是,后端返回的数据中,字段的值为 Date(******+***) 的字符串;

一、通过前端界面获取的 时间:

  此处通过 element -UI 中的日期时间选择器 组件进行测试;

  1、新建一个 vue 文件,把日期时间选择器 组件放入到代码中:

<template>
  <div>
    <div class="block">
      <span class="demonstration">默认</span>
      <el-date-picker
        v-model="datas"
        type="datetime"
        placeholder="选择日期时间">
      </el-date-picker>
      <el-button @click="printTime()">打印</el-button>
    </div>
  </div>
</template>

  2、在data() 方法中,初始化一个与组件中双向绑定的变量 datas:

data() {
    return {
      datas: '',
    };
  },

  3、添加一个按钮,用于在控制台打印出 变量datas的值:

<template>
  <div>
    <div class="block">
      <span class="demonstration">默认</span>
      <el-date-picker
        v-model="datas"
        type="datetime"
        placeholder="选择日期时间">
      </el-date-picker>
      <el-button @click="printTime()">打印</el-button>
    </div>
  </div>
</template>

  同时在 methods 中添加打印按钮点击的事件:

methods: {
    printTime() {
      console.info(this.datas);
      console.info(typeof(this.datas));
      console.info(this.datas.getFullYear());
      console.info(this.datas.getMonth() + 1);
      console.info(this.datas.getDate());
      console.info(this.datas.getHours());
      console.info(this.datas.getMinutes());
      console.info(this.datas.getSeconds());
    },
  }

  测试结果为:

二、 通过在 js 新建 Date 类型的方式:

  

    // 新建一个 Date 对象类型的变量
    let date = new Date();
    console.info(date);
    function formatDate(date) {
        let year = date.getFullYear();
        let month = date.getMonth() + 1;
        let day = date.getDate();
        let hour = date.getHours();
        let minute = date.getMinutes();
        let second = date.getSeconds();
        console.info(year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second);
    }
    formatDate(date);

  结果为:

三、通过在 后端返回数据 的方式

  此处通过 声明 Date(******+***) 的变量方式来模拟后端返回带有此类值的情况:

  *此处不考虑\有多少,只是在字符串中的转义方式;

    // 模拟后端传递 '\\/Date(******+***)\\/' 字符串的Date类型数据
    let data = '\\\\/Date(1633277719000+0800)\\\\/'
    // 声明处理该类型数据的统一方法
    function formatStringDate(date) {
        let tmp = /\d+(?=\+)/.exec(date.substr(1, date.length - 1));
        let data = new Date(+tmp);
        let year = data.getFullYear();
        let month = data.getMonth() + 1;
        let day = data.getDate();
        let hour = data.getHours();
        let minute = data.getMinutes();
        let second = data.getSeconds();
        console.info(year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second);
    }
    // 调用该方法进行转换
    formatStringDate(data);

  结果为:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM