博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue.js--自定义指令(时间转换)
阅读量:2441 次
发布时间:2019-05-10

本文共 2483 字,大约阅读时间需要 8 分钟。

自定义指令 v-time

将绝对时间转换为相对时间。(例如,社交软件发布动态里面的时间、几分钟前、几小时前…)

在这里插入图片描述

入口页面 index.html

    
时间转换
{
{timeBefore}}

根实例 index.js

var app = new Vue({
el: '#app', data: {
timeNow: (new Date()).getTime(), timeBefore: 1571324903814 }});

自定义指令 time.js

var Time = {
//获取当前时间戳 getUnix: function () {
var date = new Date(); return date.getTime(); }, //获取今天0点0分0秒的时间戳 getTodayUnix: function () {
var date = new Date(); date.setHours(0); date.setMinutes(0); date.setSeconds(0); date.setMilliseconds(0); return date.getTime(); }, //获取今年1月1日0点0分0秒的时间戳 getYearUnix: function () {
var date = new Date(); date.setMonth(0); date.setDate(1); date.setHours(0); date.setMinutes(0); date.setSeconds(0); date.setMilliseconds(0); return date.getTime(); }, //获取标准年月日 getLastDate: function () {
var date = new Date(time); var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1; var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate(); return date.getFullYear() + '-' + month + '-' + day; }, //转换时间 getFormatTime: function (timestamp) {
var now = this.getUnix();//当前时间戳 var today = this.getTodayUnix();//今天0点时间戳 var year = this.getYearUnix();//今年0点时间戳 var timer = (now - timestamp) / 1000;//转换为妙级别时间戳 var tip = ''; if(timer <= 0){
tip ='刚刚'; }else if(Math.floor(timer / 60) <= 0){
tip = '刚刚'; }else if(timer < 3600){
tip = Math.floor(timer / 60) + '分钟前'; }else if(timer >= 3600 && (timestamp - today >= 0)){
tip = Math.floor(timer / 3600) + '小时前'; }else if(timer / 86400 <= 31){
tip = Math.ceil(timer / 86400) + '天前'; }else{
tip = this.getLastDate(timestamp); } return tip; }};Vue.directive('time', {
bind: function (el, binding) {
el.innerHTML = Time.getFormatTime(binding.value); el.__timeout__ = setInterval(function () {
el.innerHtML = Time.getFormatTime(binding.value); }, 1000); }, unbind: function (el) {
clearInterval(el.__timeout__); delete el.__timeout__; } });

转载地址:http://rxsqb.baihongyu.com/

你可能感兴趣的文章
如何在嵌入式Linux产品中做立体、覆盖产品生命期的调试 (5)
查看>>
手机最新触控技术
查看>>
Kubuntu 项目遭遇困难(转)
查看>>
kubuntu使用日记之 eva的配置使用(转)
查看>>
unix下几个有用的小shell脚本(转)
查看>>
QQ病毒的系列处理办法(转)
查看>>
Red Hat并购JBoss 谁将受创?(转)
查看>>
基于IBM大型主机,Linux开辟意大利旅游新天地(转)
查看>>
一些Linux试题(经典!!)(转)
查看>>
优化MySQL数据库性能的八大“妙手”(转)
查看>>
福布斯:Sun下场本可避免 老CEO不听劝(转)
查看>>
根据什么选择一套适合自己的linux系统?(转)
查看>>
戴尔将在法国推出Linux笔记本(转)
查看>>
近9成盗版Office用户称愿投奔开源(转)
查看>>
MySQL购InnoDB不敌甲骨文宣布开放数据引擎(转)
查看>>
银行监会选红旗Linux建设公文传输系统(转)
查看>>
网上交易中帐号和密码被盗的解决途径(转)
查看>>
Java线程总结(转)
查看>>
Java学习之类的属性(转)
查看>>
轻松搞定Java内存泄漏(转)
查看>>