通过原型链添加Date()计算距离当前时间

var a = new Date('1919 7 11');
console.log(a.ago);

Date.prototype.__defineGetter__('ago', function () {
    var diff = (((new Date()).getTime() - this.getTime()) / 1000), day_diff = Math.floor(diff / 86400); // 一天的时间戳 86400
    return day_diff === 0 && (
        diff < 600 && "刚刚" || //小于十分钟视为刚刚
        diff < 120 && "1分钟前" ||
        diff < 3600 && Math.floor(diff / 60) + "分钟前" ||
        diff < 7200 && "1小时前") ||
        diff < 84600 && Math.floor(diff / 3600) + "小时前" ||
        day_diff === 1 && "昨天" ||
        day_diff < 7 && day_diff + "天前" ||
        day_diff < 30 && Math.ceil(day_diff / 7) + "周前" ||
        day_diff < 360 && Math.ceil(day_diff / 30) + "月前" ||
        Math.ceil(day_diff / 360) + "年前"
})

上面的方法我是在学习nodejs中看到的(《了不起的nodejs》),自己稍微加了点判断,

遇到的疑惑

书中提到 __defineGetter__ 为访问属性,__defineSetter__为设置属性,但是设置属性的时候却用的__defineGetter__,希望能够得到解答

点赞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值