Vue的实时时间转换Demo
Vue的实时时间转换Demo
time.html:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>时间转换指令</title>
</head>
<body>
<div id="app" v-cloak>
    <div v-time="timeNow"></div>
    <div v-time="timeBefore"></div>
</div>
<script src="../js/vue.js"></script>
<script src="./time.js"></script>
<script src="./index.js"></script>
</body>
</html>
index.js
var app = new Vue({
    el:'#app',
    data:{
        timeNow:(new Date()).getTime(),
        timeBefore:1488930695721
    }
});
time.js
var time= {
    //获取当前时间戳
    getUnix: function () {
        var data = new Date();
        return data.getTime();
    },
    //获取今天0点0分0秒的时间戳
    getTodayUnix: function () {
        var data = new Date();
        data.setHours(0);
        data.setMinutes(0);
        data.setSeconds(0);
        data.setMilliseconds(0);
        return data.getTime();
    },
    //获取今年1月1日0点0分0秒的时间戳
    getYearUnix: function () {
        var data = new Date();
        data.setMonth(0);
        data.setDate(1);
        data.setHours(0);
        data.setMinutes(0);
        data.setSeconds(0);
        data.setMilliseconds(0);//毫秒
        return data.getTime();
    },
    //获取标准的年月日
    getLastDate: function (time) {
        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();
        var year = this.getYearUnix();
        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);
        },60000);
    },
    unbind:function(el){
        clearInterval(el._timeout_);
        delete el._timeout_;
    }
})
Vue的实时时间转换Demo的更多相关文章
- 用Vue开发一个实时性时间转换功能,看这篇文章就够了
		前言 最近有一个说法,如果你看见某个网站的某个功能,你就大概能猜出背后的业务逻辑是怎么样的,以及你能动手开发一个一毛一样的功能,那么你的前端技能算是进阶中高级水平了.比如咱们今天要聊的这个话题:如何用 ... 
- vue中插值表达式中时间转换yyyy-MM-dd HH:mm:ss
		vue插值表达式中将时间转换两种方式:一.定义方法 <div id="app">当前实时时间:{{dateFormat(date)}}</div> //时间 ... 
- vue.js实战——vue 实时时间
		created:实例创建完成后调用,此阶段完成了数据的观测等,但尚未挂载,$el还不可用,需要初始化处理一些数据时会比较有用. mounted:el挂载到实例上后调用,一般我们的第一个业务逻辑会在这里 ... 
- vue  ele 日期时间格式限制不能早于当天,时间转换成时间戳 进行比较
		<el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model=&quo ... 
- C#实现多级子目录Zip压缩解压实例  NET4.6下的UTC时间转换  [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了  asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程  asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案  .NET Core开发日志
		C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ... 
- UTC 时间转换 All In One
		UTC 时间转换 All In One http://www.timebie.com/cn/stduniversal.php UTC 时间 世界的每个地区都有自己的本地时间,在 Internet 及无 ... 
- PostgreSQL 时间转换
		背景:最近频繁使用到时间转换相关的操作,特此小记. 1.实时取最近24小时内数据. select now() - interval '24h'; 通过sql获得符合要求的时间段,当做where条件即可 ... 
- [jquery]将当前时间转换成yyyymmdd格式
		如题: function nowtime(){//将当前时间转换成yyyymmdd格式 var mydate = new Date(); var str = "" + mydate ... 
- MySQL 日期、时间转换函数
		MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ... 
随机推荐
- HDU 1716 排列2 (格式问题+排列)
			题意:. 析:我们完全可以STL里面的函数next_permutation(),然后方便,又简单,这个题坑就是在格式上. 行末不能有空格,结尾不能有空行,不大好控制,必须控制好第一次数. 这个题本应该 ... 
- UVa 11346 Probability (转化+积分+概率)
			题意:给定a,b,s,在[-a, a]*[-b, b]区域内任取一点p,求以原点(0,0)和p为对角线的长方形面积大于s的概率. 析:应该明白,这个和高中数学的东西差不多,基本就是一个求概率的题,只不 ... 
- 17)maven-surefire-plugin
			http://maven.apache.org/surefire/maven-surefire-plugin/ Goals Overview The Surefire Plugin has only ... 
- bootstrap modal
			模态框提供了两个可选尺寸,通过为 .modal-dialog 增加一个样式调整类实现.加modal-lg,加modal-sm,不加也可以,共有三种尺寸. 触发方式,data-target, 感觉比js ... 
- java web前端调试手段
			1.console.log() 2. jQuery.ajax({ url:"/task1/com/guodiantong/servlet/JsonTo ... 
- 【AppCan 开发者】移动信息化随想
			现在的移动信息化,准确来说,是手机智能网络化.从08年到14年这6年时间里,手机发生翻天覆地的变化,成为移动设备智能中心,取得巨大成就,也成就一批公司,带动移动互联网的发展,引来众多人眼红热血投入.其 ... 
- 设计模式总结(《Head First设计模式》学习总结)
			写在前面: 学习过程中不仅要熟练掌握技能,理论的消化吸收也必不可少.虽然个人更倾向于学习技术类的东西(短时间的精力投入很快就能看到成效...),但看了很多前辈的经验总结后才知道理论性的东西是绝对不能忽 ... 
- 程序媛计划——mysql 插入、查找、修改、删除数据
			#插入.查找数据 [mysql>create table if not exists exam_score( ..>id int(4) not null primary key auto_ ... 
- Service的使用
			一.Service的适用范围 1.本地服务(Local Service): 应用程序的内部(单个APP) startServcie stopService stopSelf stopSelfRe ... 
- leetcode 123. 买卖股票的最佳时机 III JAVA
			题目: 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你最多可以完成 两笔 交易. 注意: 你不能同时参与多笔交易(你必须在再次购买前出 ... 
