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

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

语言: Python, 标签: 人性化 发芽网 time 2008/05/23发布 1年前更新
作者: 半瓶墨水, 点击4038次, 评论(7), 收藏者(3), , 打分:

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

发表评论

注册登录后再发表评论