flask时间格式化

Posted in 2016-6-15 23:46 | Category: Python | Tags: flask datetime python

在前端显示为该问题 "几分钟前发表或几天前发表"

后端通过filter注册

参考资料

设计需求

  • 如果问题发表超过 10天 ,则显示为 %Y-%m-%d %H:%M

  • 如果小于 10天 ,但是大于 1天 ,则显示为 n天前 发表

  • 如果小于 1天 ,但是大于 1小时 ,则显示为 n小时前 发表

  • 如果小于 1小时 ,但是大于 90秒 ,则显示为 n分钟前 发表

  • 如果小于 90秒 ,则显示为 刚刚 发表

具体实现

通过 diff.daysdiff.seconds 实现

比如,大于10天

if diff.days > 10:
    return dt.strftime('%Y-%m-%d %H:%M')

大于90秒,小于1小时

if diff.seconds <= 3600 and diff.seconds > 90:
    periods = ((diff.seconds / 60, "minute", "minutes"), )

具体代码

def timesince(dt, default="just now"):
    now = datetime.now()
    diff = now - dt
    if diff.days > 10:
        return dt.strftime('%Y-%m-%d %H:%M')
    if diff.days <= 10 and diff.days > 0:
        periods = ((diff.days, "day", "days"), )
    if diff.days <= 0 and diff.seconds > 3600:
        periods = ((diff.seconds / 3600, "hour …

python时间转换

Posted in 2016-4-7 23:42 | Category: Python | Tags: datetime python

string转datetime

>>> import datetime
>>> str = "2016-04-03"
>>> date_time = datetime.datetime.strptime(str,'%Y-%m-%d')
>>> date_time
datetime.datetime(2016, 4, 3, 0, 0)

datetime转string

>>> date_time.strftime('%Y-%m-%d')
'2016-04-03'

datetime转时间戳

>>> time_time = time.mktime(date_time.timetuple())
>>> time_time
1459612800.0

时间戳转string

>>> time.strftime('%Y-%m-%d',time.localtime(time_time))
'2016-04-03'