有什么简单的方法可以达到下面的效果?selected_date来自django上下文,是python date:
<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>
发布于 2011-02-22 19:17:55
我在python中使用isoformat函数取得了很大的成功:
var selected_date = new Date("{{ selected_date.isoformat }}")
发布于 2011-07-08 06:56:36
根据区域设置,接受的答案可能会生成不正确的日期。
在FF控制台中:
>>> n = new Date('2011-01-01');
Date {Fri Dec 31 2010 16:00:00 GMT-0800 (PST)}
因此,最好将Y,m,d整数传递给Date构造函数。
我使用模板过滤器来生成日期构造函数:
@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'
发布于 2011-05-11 22:35:13
当我使用这个工具时,我意识到Android在解析它的时候会返回“无效的日期”--我认为它比桌面Webkit更严格。我改为使用以下内容,这似乎是有效的:
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
https://stackoverflow.com/questions/5076319
复制相似问题