V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pheyer
V2EX  ›  程序员

有没有插件把 V2EX 上的帖子时间从 XXX 前转化为准确时间的

  •  2
     
  •   pheyer · 2015-12-30 11:28:08 +08:00 · 4868 次点击
    这是一个创建于 3040 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不知道为什么 V2EX 特别钟情于这种时间表示法,其实特别讨厌这种 XXX 前的时间显示,我能接受的是 24 小时之内的时间可以用 XXX 前的时间表示,一周之内可以用星期 X 表示或者亦可用 XXX 天前表示,超过一周的就最好给出准确日期,或者像微博那样即可。显示 100 天前, 200 天前毫无意义,没人这样觉得吗?
    39 条回复    2015-12-31 13:41:38 +08:00
    vanxining
        1
    vanxining  
       2015-12-30 11:32:31 +08:00 via Android
    个人网站,小心封号。谢谢!
    pheyer
        2
    pheyer  
    OP
       2015-12-30 11:36:00 +08:00
    @vanxining 什么鬼,不懂
    crystom
        3
    crystom  
       2015-12-30 11:36:02 +08:00
    本地 js 可破
    feiyuanqiu
        4
    feiyuanqiu  
       2015-12-30 11:38:51 +08:00
    @vanxining ... 你这是在黑管理员么
    楼主又不是在无脑喷,讲自己的想法而已,有什么需要小心的
    如果站长真到了对这种发言也不能容忍的时候,大概这里也没什么人了吧
    justjavac
        5
    justjavac  
       2015-12-30 12:04:13 +08:00
    ██████ 刮开看答案
    babyhome
        6
    babyhome  
       2015-12-30 12:16:06 +08:00
    @vanxining
    @feiyuanqiu 现实就是站长确实这样,曾经问了一下问什么 v 站要搞 2 个发帖入口,然后帐号就被干掉了。
    will0404
        7
    will0404  
       2015-12-30 12:23:54 +08:00 via iPhone
    自己写一个 chrome 插件咯
    neo2015
        8
    neo2015  
       2015-12-30 12:37:07 +08:00
    @feiyuanqiu 他不是在黑
    SourceMan
        10
    SourceMan  
       2015-12-30 12:40:21 +08:00
    @feiyuanqiu 我上次转发了个月光博客关于南京大图沙的言论,账户和出口 IP 都被 block 了
    SourceMan
        11
    SourceMan  
       2015-12-30 12:40:51 +08:00
    @SourceMan 不过这是机器行为,不是管理员的~
    pheyer
        12
    pheyer  
    OP
       2015-12-30 12:42:01 +08:00
    @babyhome 说得我好怕怕
    loading
        13
    loading  
       2015-12-30 12:48:16 +08:00 via Android   ❤️ 1
    其实更合理的方法是后台提供时间,前台 js 动态修改为几分前。
    dofy
        14
    dofy  
       2015-12-30 13:02:59 +08:00
    页面上得不到时间,不好处理,如果每条记录页面上都嵌入原始时间数据就好办了。
    WittBulter
        15
    WittBulter  
       2015-12-30 13:25:44 +08:00
    这种时间表示方法叫拟人化....
    实际上可以通过 moment 来转化,nodejs 和前端都支持,具体搜索 moment.js
    laoyur
        16
    laoyur  
       2015-12-30 13:28:04 +08:00
    楼主给 vplus 的作者反馈一下吧,希望能赢得他的共鸣 :)
    https://chrome.google.com/webstore/detail/v2ex-plus/limfkkkgjbcfmfhkclkohdhddfngakhb
    sciooga
        17
    sciooga  
       2015-12-30 13:36:02 +08:00
    @laoyur 看见了,我觉得并没有什么意义啊,像周报的爬虫等时间变为 “ n 天前” 时我也统一改为当天 0 点,因为页面又拿不到时间戳,根本确定不了准确时间。
    yeyeye
        18
    yeyeye  
       2015-12-30 13:36:52 +08:00
    @justjavac 屏幕刮坏了你赔!
    pheyer
        19
    pheyer  
    OP
       2015-12-30 13:37:14 +08:00
    @sciooga 知道日期就行, n 天前的不需要精确到时分秒
    px1981
        20
    px1981  
       2015-12-30 13:44:00 +08:00
    以页面打开时间为准,然后用 moment 处理下就行
    vCleaner
        21
    vCleaner  
       2015-12-30 13:52:56 +08:00
    @pheyer 正常问问题提意见不会有任何问题,上面几个 2015 年注册、没有头像的用户纯属危言耸听。
    dofy
        22
    dofy  
       2015-12-30 13:59:02 +08:00
    @px1981 赞,写个用户脚本。
    sciooga
        23
    sciooga  
       2015-12-30 14:02:09 +08:00
    浏览器新建一个标签



    起一个你喜欢的名字,网址粘贴下面的代码,需要转换时间的主题加载完后单击此标签即生效。

    javascript:(function(){$('.header small').text(function(i, o){
    day = /(\d+) 天 /.exec(o);
    if (day){
    date = new Date(2015,12,-1*(1+~~o[1]));
    return o.replace(/\d+ 天前 /, date.getFullYear()+'年'+(date.getMonth()+1)+'月'+date.getDate()+'日');
    }
    });})();

    注意:如果你的浏览器网址内不能输入回车、空格等请手动去掉,而且按照 V2EX 的 CSS ,我回复的代码所有缩进应该都没了... 你只需要去掉回车即可。
    sciooga
        24
    sciooga  
       2015-12-30 14:07:38 +08:00
    Sorry 手写的,好像打错了一个字母,这个我试了下可以的。
    javascript:(function(){$('.header small').text(function(i, o){
    day = /(\d+) 天 /.exec(o);
    if (day){
    date = new Date(2015,12,-1*(1+~~day[1]));
    return o.replace(/\d+ 天前 /, date.getFullYear()+'年'+(date.getMonth()+1)+'月'+date.getDate()+'日');
    }
    });})();
    sciooga
        25
    sciooga  
       2015-12-30 14:18:36 +08:00
    https://gist.github.com/sciooga/7aa13203feee21582d87

    搞明白了, V2EX 的回复会自动添加空格,那个正则就失效了...
    SmiteChow
        26
    SmiteChow  
       2015-12-30 14:45:24 +08:00
    @justjavac 调皮
    tryfinally
        27
    tryfinally  
       2015-12-30 15:12:12 +08:00
    @sciooga
    书签太蠢了。。。
    Tampermonkey
    dofy
        28
    dofy  
       2015-12-30 17:25:33 +08:00
    syv2
        29
    syv2  
       2015-12-30 17:34:13 +08:00
    这个时间不是从服务器上直接输出的么?
    hatcloud
        30
    hatcloud  
       2015-12-30 20:38:27 +08:00
    我倒是想知道一般 API 提供的那个时间转化成几天前是怎么实现的。
    dqh3000
        31
    dqh3000  
       2015-12-30 21:10:30 +08:00
    > a.toJSON()
    '2015-12-30T13:10:59.802Z'
    > a.setHours(a.getHours() - 9) // 9 小时前
    1451448659802
    > a.toJSON()
    '2015-12-30T04:10:59.802Z'
    >
    javascript 可以这么用
    quericy
        32
    quericy  
       2015-12-31 09:16:41 +08:00
    写书签感觉太蛋疼了,油猴脚本简单粗暴
    lins05
        33
    lins05  
       2015-12-31 09:23:54 +08:00
    有一个 python 库专门做这个的

    https://github.com/scrapinghub/dateparser
    dofy
        34
    dofy  
       2015-12-31 09:50:18 +08:00 via iPhone
    pheyer
        35
    pheyer  
    OP
       2015-12-31 10:13:03 +08:00
    @dofy 你把所有的时间都转换了,也不错,谢谢分享,已经用上
    dofy
        36
    dofy  
       2015-12-31 10:23:55 +08:00 via iPhone
    @pheyer 嗯呐,换就换彻底点。哈哈
    不过代码里有检测列表,后面有说明,不需要替换的可以注释掉。
    rAYz
        37
    rAYz  
       2015-12-31 10:32:56 +08:00
    歪个楼。。微信朋友圈如何弄成绝对时间。。显示 xx 小时前很模糊
    之前塞班版的微信 1 小时内显示相对时间,满 1 小时就显示绝对时间了
    pheyer
        38
    pheyer  
    OP
       2015-12-31 10:44:31 +08:00
    @rAYz 才发现朋友圈里一天之前的时间也是这样表示的。。。不过一般人看朋友圈都是看新鲜事吧,所以我没特别在意这个
    这个就不像 V2EX 那样容易解决啦
    flyshu
        39
    flyshu  
       2015-12-31 13:41:38 +08:00
    chrome 插件可以解决这个问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2731 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:33 · PVG 10:33 · LAX 19:33 · JFK 22:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.