js方法(在plugins.js文件中)
/**
* 一位数字前面补0
*/
zeroize(num) {
return (String(num).length == 1 ? '0' : '') + num;
}
过滤器(在filter.js中)
import plugins from "./plugins";
/**
* 对传入时间进行转换
* */
const judgeTime = timestamp => {
if (!timestamp) return;
var curTimestamp = parseInt(new Date().getTime() / 1000); //当前时间戳
var timestampDiff = curTimestamp - timestamp; // 参数时间戳与当前时间戳相差秒数
var curDate = new Date( curTimestamp * 1000 ); // 当前时间日期对象
var tmDate = new Date( timestamp * 1000 ); // 参数时间戳转换成的日期对象
var Y = tmDate.getFullYear(), m = tmDate.getMonth() + 1, d = tmDate.getDate();
var H = tmDate.getHours(), i = tmDate.getMinutes(), s = tmDate.getSeconds();
if ( timestampDiff < 60 ) { // 一分钟以内
return "刚刚";
} else if( timestampDiff < 3600 ) { // 一小时前之内
return Math.floor( timestampDiff / 60 ) + "分钟前";
} else if ( curDate.getFullYear() == Y && curDate.getMonth()+1 == m && curDate.getDate() == d ) {
return '今天' + plugins.zeroize(H) + ':' + plugins.zeroize(i);
} else {
var newDate = new Date( (curTimestamp - 86400) * 1000 ); // 参数中的时间戳加一天转换成的日期对象
if ( newDate.getFullYear() == Y && newDate.getMonth()+1 == m && newDate.getDate() == d ) {
return '昨天' + plugins.zeroize(H) + ':' + plugins.zeroize(i);
} else if ( curDate.getFullYear() == Y ) {
return plugins.zeroize(m) + '月' + plugins.zeroize(d) + '日 ' + plugins.zeroize(H) + ':' + plugins.zeroize(i);
} else {
return Y + '年' + plugins.zeroize(m) + '月' + plugins.zeroize(d) + '日 ' + plugins.zeroize(H) + ':' + plugins.zeroize(i);
}
}
};
export {
judgeTime
}
注册全局过滤器(在main.js中)
import * as filters from "./util/filter"; // 引入filter.js文件
// 注册全局过滤器
Object.keys(filters).forEach((key) => {
Vue.filter(key, filters[key]);
});