邪恶的JS懒人

上面的是一只狗狗 – 长得像浣熊

昨天看了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 回去慢慢看^_^

您可能还对这些日志感兴趣 - 随意

该文章已经被摸了300次。 共有 16 条评论

  1. 1. 股票 2009年7月21日 at 10:12

    代码太油墨了

    回复

    飞鱼 Reply:

    嘎嘎···

    回复

  2. 2. 小峰JoysBoy 2009年7月21日 at 12:45

    我就看看那只狗,嘎嘎

    回复

    飞鱼 Reply:

    想狗狗啦··? – -

    回复

    小峰JoysBoy Reply:

    呵呵,那狗应该早去天堂了,可怜的狗

    回复

  3. 3. 仁心博客 2009年7月22日 at 14:51

    这真的很像小浣熊

    回复

  4. 4. 小豪 2009年7月23日 at 20:38

    这怎么可能是一条狗。。。

    回复

    飞鱼 Reply:

    嘎嘎~ 蜜蜂··

    回复

    飞鱼 Reply:

    嘎嘎 像··蜜蜂

    回复

    小豪 Reply:

    大叔。。。。。

    回复

  5. 5. about2 2009年7月24日 at 15:59

    狗趴着时前腿怎么成翱翔状+没有茅厕顿开

    回复

    飞鱼 Reply:

    此狗狗 当时正午睡···· 偶给摆的姿势~~

    @米有 茅厕顿开··就当米开~~

    回复

    葉子 Reply:

    你有狗哒,我怎么不知道,咔歪依>3<

    回复

  6. 6. sherry 2009年7月26日 at 10:58

    好好学习,天天放假
    好的!经典!

    回复

  7. 7. bigCat 2009年8月15日 at 1:09

    请教了高手,不是这个意思…
    +new Date()
    是距离19XX年某个时刻的毫秒数,而不是转换为毫秒…
    拿来做timestamp

    回复

    飞鱼 Reply:

    这样子啊···我得好好研究研究·· = =

    回复

发表评论

评论仅支持“a、abbr、strong、em、blockquote、code”几个简单的标签

Who am I ?

飞鱼,男,浙江人士。
非专业前端、交互设计师。
目前在 企鹅村 通宵 打酱油

最新在啃

php和mysql web开发(原书第4版) javascript

新鲜的肉

最新评论

  • 小元: 啊!我会弄了!
  • 小元: 请问多窗口并显怎么设置?看了文章还是不会呢! “打开html页面,点击多窗口panel,然后从左侧目录中将css文件拖动到右侧panel就可以实现了。”...
  • vilppu: http://foxsp.com/t/125 这有下载,也有安装说明
  • James: 请问能否分享配色方案?
  • Aric: 代码快 来一份 谢谢楼主了 新年快乐

订阅-rss-永久链接

MT
备案号:浙ICP备09020026 号