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__,希望能够得到解答
点赞