如何把时间长度(秒)转换成可读的形式

2015-10-21 19:01:10 +08:00
 Jafy

像这样写有没有什么问题?

function getDuration(lasttime) {
    var seconds = ( Date.now() / 1000 | 0 ) - lasttime;
    if (seconds > 60*2) {
        if (seconds > 3600*2) {
            if (seconds > 3600*24*2) {
                if (seconds > 3600*24*7*2) {
                    if (seconds > 3600*24*30*2) {
                        if (seconds > 3600*24*365*2) {
                            return (seconds / (3600*24*365) | 0) + " years";
                        }
                        return (seconds / (3600*24*30) | 0) + " months";
                    }
                    return (seconds / (3600*24*7) | 0) + " weeks";
                }
                return (seconds / (3600*24) | 0) + " days";
            }
            return (seconds / 3600 | 0) + " hours";
        }
        return (seconds / 60 | 0) + " minutes";
    }
    return (seconds) + " seconds";
}
1782 次点击
所在节点    JavaScript
2 条回复
ryd994
2015-10-21 19:26:01 +08:00
那为什么不反过来?
这么多层嵌套真是药丸,多一行少一行看不出来
if time>year
return ...
if time>month
return ...

|0 是什么意思?

另外时间的显示 python 标准库里似乎是有现成的
tomwan
2015-10-21 19:59:54 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/229949

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX