为 Date 对象添加 ago 属性
/*
* 此处,__defineGetter__与__defineSetter__相当于C#实体中类中的get与set
**/
Date.prototype.__defineGetter__('ago',function () {
var diff = ((new Date()).getTime() - this.getTime()) / 1000,
day_diff = Math.floor(diff / 86400);
return day_diff == 0 &&
diff < 60 && 'just now' ||
diff < 120 && '1 minute ago' ||
diff < 3600 && Math.floor( diff / 60 ) + 'minutes ago' ||
diff < 7200 && '1 hour ago' ||
day_diff == 1 && 'yesterday' ||
day_diff < 7 && day_diff + 'days ago' ||
Math.ceil( day_diff / 7 ) + 'weeks ago'; });
测试一下
var a = new Date('12/12/1990')
a.ago// "1353weeks ago"
var a = new Date('2016-11-9')
a.ago// "yesterday"
var a = new Date('2016-11-5')
a.ago// "5days ago"
今后就根据需求变动其return的条件即可
为 Date 对象添加 ago 属性的更多相关文章
- MVVM架构~knockoutjs系列之Mapping插件为对象添加ko属性
返回目录 对于一个JS对象来说,如果希望将所有属性进行监视,在之前我们需要一个个对属性添加ko.observable方法,而有了Mapping插件后,它可以帮助我们这件事. 在Mapping出现之前 ...
- vue 数组中嵌套的对象添加新属性--页面更新
vue 数组中嵌套的对象添加新属性--页面更新:https://www.jianshu.com/p/8f0e5bb13735
- vue data对象添加新属性触发视图
<template> <div class="wrap open"> <a>{{test01.name}}</a> <a> ...
- JSON对象添加删除属性
假如目前我们有如下一个Json对象 var jsonObj={ 'param1':22, 'param2' :33 }; 增加属性: 我们现在向该对象jsonObj中添加一个新的属性字段:param3 ...
- javascript系列-class7.Date对象
1.对象 什么是对象? 对象的类型是Object. JavaScript 中的所有事物都是对象:字符串.数值.数组.函数... javaScript中万事万物皆对象 用官方 ...
- JavaScript---网络编程(3)-Object、String、Array对象和prototype属性
本节学习JavaScript的对象和方法(函数)~ Object 对象 提供所有 JScript 对象通用的功能. obj = new Object([value]) 参数 obj 必选项.要赋值为 ...
- JavaScript 深入了解对象中的属性
本篇主要介绍JS中对象的属性,包括:属性的分类.访问方式.检测属性.遍历属性以及属性特性等内容. 目录 1. 介绍:描述属性的命名方式.查找路径以及分类 2. 属性的访问方式:介绍'.'访问方式.'[ ...
- JavaScript中的对象描述符(属性特性)
我们先创建一个对象: var person = { name: "Nicholas", _job: "Software Engineer", sayName: ...
- python-面向对象-09_类属性和类方法
类属性和类方法 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两 ...
随机推荐
- 防止跨域(jsonp详解)
详见:http://www.cnblogs.com/lemontea/archive/2012/12/11/2812268.html $("#getJsonpByJquery"). ...
- JSP九大内置对象分析
JSP九大内置对象分为三类: 1.输入输出对象:out对象.response对象.request对象 2.通信控制对象:pageContext对象.session对象.application对象 3. ...
- charindex的用法
declare @str nvarchar(50);set @str='462,464,2';select @str as '字符串'select len(@str) as '字符长度' select ...
- C#基础知识回顾-- 反射(3)
C#基础知识回顾-- 反射(3) 获取Type对象的构造函数: 前一篇因为篇幅问题因为篇幅太短被移除首页,反射这一块还有一篇“怎样在程序集中使用反射”, 其他没有什么可以写的了,前两篇主要是铺垫, ...
- Oracle中的User与Schema
Oracle中有两个概念容易混淆──user和schema,本随笔记录并摘抄了一些促进理解这连个概念的理解方法,希望有助于分清这两个概念. user是控制权限的,而schema则是一个容器,非所有者如 ...
- 1.(1)编写一个接口ShapePara,要求: 接口中的方法: double getArea():获得图形的面积。double getCircumference():获得图形的周长 (2)编写一个圆类Circle,要求:圆类Circle实现接口ShapePara。 该类包含有成员变量: radius:public 修饰的double类型radius,表示圆的半径。 x:private修饰的dou
package jiekou1; public interface ShapePara { //定义常量PI final double PI=3.14; //定义抽象方法 //获得图形面积 doubl ...
- MySQL数据库加密与解密
数据加密.解密在安全领域非常重要.对程序员而言,在数据库中以密文方式存储用户密码对入侵者剽窃用户隐私意义重大. 有多种前端加密算法可用于数据加密.解密,下面我向您推荐一种简单的数据库级别的数据加密.解 ...
- linux centos6 NAT 端口转发
有很多时候我们为了安全,需要将例如数据库服务器放到内网中.但是有些时候又系统给外网开一个端口,这时就可以利用外网的服务器进行一个端口转发.今天我们以centos6 为例进行端口转发配置. 首先vi / ...
- javascript关闭浏览器窗口
var opened=window.open('about:blank','_self'); opened.close(); window.open 不被阻止 .open('_blank') 然后 t ...
- Java设计模式07:常用设计模式之装饰器模式(结构型模式)
1. Java之装饰器模式(Decorator Pattern) (1)概述: 装饰模式在Java种使用也很广泛,比如我们在重新定义按钮.对话框等时候,实际上已经在使用装饰模式了.在不必改变原 ...