Python友好显示时间戳

友好时间戳

之前考虑通过Mement.js来处理,最后没去折腾,直接用jinja2的过滤器简单处理,现在直接通过后台自己实现,可根据需要自定义。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# -*- coding: utf-8 -*-
import datetime
# 计算星期几
def get_weekday(date):
week_day_dict = {
0 : '星期一',
1 : '星期二',
2 : '星期三',
3 : '星期四',
4 : '星期五',
5 : '星期六',
6 : '星期日',
}
day = date.weekday()
return week_day_dict[day]
# 时间格式化
def datetime_format(value, format="%Y-%m-%d %H:%M"):
print value, type(value)
return value.strftime(format)
# 时间差
def datetime_delta(time):
now = datetime.datetime.now()
time_date = now.date() - time.date()
days = time_date.days
seconds = (now - time).seconds
# 星期一 8:00
if days <= 6:
if days < 1:
if seconds < 60:
return '几秒前'
elif seconds < 3600:
return '%s分钟前' % int(seconds / 60)
else:
return datetime_format(time, '%H:%M')
if days < 2:
return '昨天 ' + datetime_format(time, '%H:%M')
return get_weekday(time) + ' ' + datetime_format(time, '%H:%M')
else:
return datetime_format(time, "%Y-%m-%d")
print datetime_delta(datetime.datetime.strptime('2015-03-29 14:13:00', "%Y-%m-%d %H:%M:%S"))