比这篇新的文章: bash
比这篇旧的文章: 自己写的paginate函数 for Django

Python - 人性化的时间(比如:两分钟以前)

语言: Python, 标签: 人性化 发芽网 time 2008/05/23发布 5个月前更新
作者: 半瓶墨水, 点击1680次, 评论(7), 收藏者(2)

开关行号, 全选(Ctrl+C复制) | 一键复制:HTML, BBCode(Discuz!) , 源代码 | 查看:裸代码, 全屏
背景
主题: 字体:
Python语言: Python - 人性化的时间(比如:两分钟以前)
01 #人性化的时间:2008-01-27 08:37:29
02 #发芽网使用此函数来显示人性化的时间:比如1分钟以前,三天前,等等
03 def time_span(ts):
04    delta = datetime.now() - ts
05    if delta.days >= 365:
06        return '%d年前' % (delta.days / 365)
07    elif delta.days >= 30:
08        return '%d个月前' % (delta.days / 30)
09    elif delta.days > 0:
10        return '%d天前' % delta.days
11    elif delta.seconds < 60:
12        return "%d秒前" % delta.seconds
13    elif delta.seconds < 60 * 60:
14        return "%d分钟前" % (delta.seconds / 60)
15    else:
16        return "%d小时前" % (delta.seconds / 60 / 60)
打分:

所有评论,共7条:( 我也来说两句)

1
半瓶墨水 5个月前 回复
0
1
  测试一下评论中的url
http://www.2maomao.com/blog/
2
半瓶墨水 5个月前 回复
2
0
    居然无效
3
李华顺 2个月前 回复
0
0
可以看一下Django源代码里面的 django.utils.timesince 的源代码,它也有做类似的实现。
4
半瓶墨水 2个月前 回复
0
0
@李华顺 呵呵后来我也看到了,不过timesince不是很符合我需要的格式。
5
liuxin9023 1个月前 回复
0
0
sorry,这个代码在python 3000里就不能用了.
datetime.now()在python3000里不存在.
另外python3000里多加了一个timedelta对象,可以直接对两个时间差进行运算
6
vvoody 1个月前 回复
0
0
@5: timedelta 对象 2.x 就有啊,详见 library reference 5.1.2 节。
7
半瓶墨水 1个月前 回复
0
0
@5: Python3000里面应该有的啊,看看这个文档:
http://docs.python.org/dev/3.0/library/datetime.html

发表评论

注册登录后再发表评论