在 前端 獲得 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);
結果為: