首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Django date to javascript at the template

Django date to javascript at the template
EN

Stack Overflow用户
提问于 2011-02-22 17:28:25
回答 4查看 16.9K关注 0票数 29

有什么简单的方法可以达到下面的效果?selected_date来自django上下文,是python date:

代码语言:javascript
复制
<script type="text/javascript">
    var selected_year = {{ selected_date|date:"Y" }}
    var selected_month = {{ selected_date|date:"m" }} - 1;
    var selected_day = {{ selected_date|date:"d"}}
    var selected_date = new Date(selected_year, selected_month, selected_day);
    alert(selected_date);
</script>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-02-22 19:17:55

我在python中使用isoformat函数取得了很大的成功:

代码语言:javascript
复制
var selected_date = new Date("{{ selected_date.isoformat }}")
票数 67
EN

Stack Overflow用户

发布于 2011-07-08 06:56:36

根据区域设置,接受的答案可能会生成不正确的日期。

在FF控制台中:

代码语言:javascript
复制
>>> n = new Date('2011-01-01');
Date {Fri Dec 31 2010 16:00:00 GMT-0800 (PST)}

因此,最好将Y,m,d整数传递给Date构造函数。

我使用模板过滤器来生成日期构造函数:

代码语言:javascript
复制
@register.filter(name='jsdate')
def jsdate(d):
    """formats a python date into a js Date() constructor.
    """
    try:
        return "new Date({0},{1},{2})".format(d.year, d.month - 1, d.day)
    except AttributeError:
        return 'undefined'
票数 13
EN

Stack Overflow用户

发布于 2011-05-11 22:35:13

当我使用这个工具时,我意识到Android在解析它的时候会返回“无效的日期”--我认为它比桌面Webkit更严格。我改为使用以下内容,这似乎是有效的:

代码语言:javascript
复制
new Date('{{ talk.start_datetime|date:"D, d M Y H:i:s"}}'),

有关JS日期解析的更多信息在这里:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/parse

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5076319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档