注:这里只写在vue中的用法,但是在react与其他框架,用法大体差不多
用法一:
1、在main.js中引入封装代码文件,然后挂载在原型链上,例如:
1、引入
import {
handlerResDate, timeFormat, formatDate, formatDateTime, timeConversion
} from './until/dateUtil'
2、挂载原型
Vue.prototype.$handlerResDate = handlerResDate
Vue.prototype.$timeFormat = timeFormat
Vue.prototype.$formatDate = formatDate
Vue.prototype.$formatDateTime = formatDateTime
Vue.prototype.$timeConversion = timeConversion
3、在需要应用的页面,使用方法
this.$handlerResDate(时间撮类型)
this.timeConversion(时间,格式) => this.timeConversion(1395057445653,'YY-MM-DD')
用法二:在需要用到的页面直接引入、使用,例如:
1、引入
import { dateUtil } from './until/dateUtil'
2、使用
dateUtil.handlerResDate(时间撮)
this.timeConversion(时间,格式) => this.timeConversion(1395057445653,'YY-MM-DD')
方法:
1、 判断时间戳,解析为时间字符串
export function handlerResDate(res) {
const reg = new RegExp('^[0-9]{10}[0][0][0]$');
for (let key in res) {
if (reg.test(res[key])) {
res[key] = filterTime(res[key])
}
}
return res
}
2、将分秒时间格式化为 2019-00-00 00:00:00 类型
//备注:
// new Date(time - 0)时减0,是因为后台返回的是字符串,减0去掉" ",变为number类型
// 也可以 new Date(number(time)),直接转换
export function timeFormat(time) {
let now = new Date(time - 0);
let year = now.getFullYear()
let month = now.getMonth() + 1
let date = now.getDate()
let hour = now.getHours()
let minute = now.getMinutes()
let second = now.getSeconds()
// return year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second
return [year, month, day, hour, minute, second].join('-');
};
3、 将分秒时间格式化为 2019-00-00 类型
export function formatDate(time) {
var date = new Date(time - 0);
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
return [year, month, day].join('-');
};
4、 时间戳格式化 2019-00-00 00:00:00
export function formatDateTime(inputTime) {
if (inputTime) {
var date = new Date(inputTime - 0)
var y = date.getFullYear()
var m = date.getMonth() + 1
m = m < 10 ? ('0' + m) : m
var d = date.getDate()
d = d < 10 ? ('0' + d) : d
var h = date.getHours()
h = h < 10 ? ('0' + h) : h
var minute = date.getMinutes()
var second = date.getSeconds()
minute = minute < 10 ? ('0' + minute) : minute
second = second < 10 ? ('0' + second) : second
return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second
}
}
expor function timeConversion (timestamp, option) {
if (!timestamp) return 0;
var date = getDate(timestamp);
var year = date.getFullYear();
var month = date.getMonth() + 1;
var fmonth = month > 9 ? month : '0' + month;
var day = date.getDate();
var fday = day > 9 ? day : '0' + day;
var hour = function () {
return date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
};
var minute = function () {
return date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
};
var second = function () {
return date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
};
// 获取 年月日
if (option === 'YY-MM-DD') return ' ' + year + '-' + fmonth + '-' + fday;
// 获取年月
if (option === 'YY-MM') return ' ' + year + '-' + month;
// 获取月日
if (option === 'MM-DD') return month + '月' + day + '日';
if (option === 'MM-DD-down') return month + '月' + fday + '日' + hour() + ':' + minute() + ':' + second() + '结束';
if (option === 'mm-dd') return month + '-' + day;
if (option === 'mm-dd hh-mm-ss') return month + '-' + day + ' ' + hour() + ':' + minute() + ':' + second();
// 获取年
if (option === 'YY') return ' ' + year;
// 获取月
if (option === 'MM') return ' ' + month;
// 获取日
if (option === 'DD') return ' ' + day;
// 获取昨天
if (option === 'yesterday') return ' ' + day - 1;
// 获取时分秒
if (option === 'hh-mm-ss') return ' ' + hour() + ':' + minute() + ':' + second();
// 获取时分
if (option === 'hh-mm') return ' ' + hour() + ':' + minute();
// 获取分秒
if (option === 'mm-ss') return minute() + ':' + second();
// 获取分
if (option === 'mm') return minute();
// 获取秒
if (option === 'ss') return second();
// 默认时分秒年月日
return year + '-' + month + '-' + day + ' ' + hour() + ':' + minute() + ':' + second();
};