Py学习  »  问与答

Django 如何实现评论或提交 xxx时间之前

mihello • 9 年前 • 5368 次点击  

之前看过flask有flask-moment 插件利用moment.js,但是如果django呢,如何现实?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/632
 
5368 次点击  
文章 [ 5 ]  |  最新文章 9 年前
mihello
Reply   •   1 楼
mihello    9 年前

:) 学习了以后写个简单blog就可以借鉴了 最近在看Django book,看到第九章,好长好长啊。以后再叨扰站长,^_^

Py站长
Reply   •   2 楼
Py站长    9 年前

@mihello 嗯,如果Django有提供就可以直接用他们的。如果想自己定制的话就自己写啦

from django.template.defaultfilters import timesince as _timesince
from django.template.defaultfilters import date as _date
from django.utils.tzinfo import LocalTimezone
from django.utils.translation import ugettext_lazy as _

from django.utils.safestring import mark_safe
from django.utils.encoding import force_unicode
mihello
Reply   •   3 楼
mihello    9 年前

谢谢站长,_(),_timesine, _date 没有见定义?怎么冒出来,是什么含义。另外我发现Django有timesince 内置filter,{{ blog_date|timesince:comment_date }}

Py站长
Reply   •   4 楼
Py站长    9 年前
def timeslice(d, now = None):
    # Convert datetime.date to datetime.datetime for comparison.
    if not d:
        return ''
    if not isinstance(d, datetime.datetime):
        d = datetime.datetime(d.year, d.month, d.day)
    if now and not isinstance(now, datetime.datetime):
        now = datetime.datetime(now.year, now.month, now.day)
    if not now:
        if d.tzinfo:
            now = datetime.datetime.now(LocalTimezone(d))
        else:
            now = datetime.datetime.now()
    # ignore microsecond part of 'd' since we removed it from 'now'
    delta = now - (d - datetime.timedelta(0, 0, d.microsecond))
    since = delta.days * 24 * 60 * 60 + delta.seconds
    if since // (60 * 60 * 24) < 3:
        return _("%s ago") % _timesince(d)
    return _date(d, "Y-m-d H:i")
Py站长
Reply   •   5 楼
Py站长    9 年前

可以自己实现一个啊