上面的是一只狗狗 – 长得像浣熊
昨天看了james的一篇关于“pretty date”的文章,这片文章纠结了我一个晚上,后来在我哥的帮助下,顺利吃下这代码。
代码如下:
var niceTime = (function() {
var ints = {
second: 1,
minute: 60,
hour: 3600,
day: 86400,
week: 604800,
month: 2592000,
year: 31536000
};
return function(time) {
time = +new Date(time);
var gap = ((+new Date()) - time) / 1000,
amount, measure;
for (var i in ints) {
if (gap > ints[i]) { measure = i; }
}
amount = gap / ints[measure];
amount = gap > ints.day ? (Math.round(amount * 100) / 100) : Math.round(amount);
amount += ' ' + measure + (amount > 1 ? 's' : '') + ' ago';
return amount;
};
})();
额,我稍微解释一下(懂英文的可以去原文看^_^),这代码主要是将时间格式转换成 相距当前时间多少时间的一个函数。
用法如下:应该不用解释到底什么用吧?看了就知道
niceTime( 1 ); // => "39.57 years ago"
niceTime( "Sun Mar 01 20:20:02 +0000 2009" );// => "4.65 months ago"
niceTime( "July 19, 2009 12:06:00" ); // => "26 seconds ago"
代码写得非常帅气,又邪恶。其中我就是卡在了下面这跳代码上了···
time = +new Date(time);
这条代码纠结了· 我一个晚上···,一开始怎么也想不通怎么会有这样的写法,后来我哥帮看了下,茅厕顿开···
上面的代码 完整写法如下···· 看了都想跳楼··
time = 0 + new Date(time);
这下懂了吧·?= =,其实只是 少了个 0 还有 个空格··· 还以为“+new” 是什么新语法呢。
这段代码是作用是把 时间变量time 的 数据从 “July 19, 2009 12:06:00″ 转换成 毫秒(跟php里的date函数不一样,php里的是 秒数,不是 毫秒)
8月21日更新
=============================
后来发现 +new Date(time) 是个 一元加法的一种用法,受益匪浅。^__^
好了,今天就到这了···
好好学习,天天放假
哟?不错哎 订阅飞鱼的RSS Feeds 回去慢慢看^_^
飞鱼 ^_^ 浆抱罗斯‘s blog



该文章已经被摸了300次。 共有 16 条评论
代码太油墨了
回复
飞鱼 Reply:
July 21st, 2009 at 10:20
嘎嘎···
回复
我就看看那只狗,嘎嘎
回复
飞鱼 Reply:
July 22nd, 2009 at 8:15
想狗狗啦··? – -
回复
小峰JoysBoy Reply:
July 22nd, 2009 at 12:31
呵呵,那狗应该早去天堂了,可怜的狗
回复
这真的很像小浣熊
回复
这怎么可能是一条狗。。。
回复
飞鱼 Reply:
July 26th, 2009 at 9:52
嘎嘎~ 蜜蜂··
回复
飞鱼 Reply:
July 26th, 2009 at 9:52
嘎嘎 像··蜜蜂
回复
小豪 Reply:
July 27th, 2009 at 2:04
大叔。。。。。
回复
狗趴着时前腿怎么成翱翔状+没有茅厕顿开
回复
飞鱼 Reply:
July 26th, 2009 at 9:51
此狗狗 当时正午睡···· 偶给摆的姿势~~
@米有 茅厕顿开··就当米开~~
回复
葉子 Reply:
July 29th, 2009 at 9:19
你有狗哒,我怎么不知道,咔歪依>3<
回复
好好学习,天天放假
好的!经典!
回复
请教了高手,不是这个意思…
+new Date()
是距离19XX年某个时刻的毫秒数,而不是转换为毫秒…
拿来做timestamp
回复
飞鱼 Reply:
August 15th, 2009 at 9:00
这样子啊···我得好好研究研究·· = =
回复
发表评论