【问题标题】:Django DateTimeField to a day hour minute secondDjango DateTimeField 到一天时分秒
【发布时间】:2012-06-18 16:40:39
【问题描述】:

我正在使用http://keith-wood.name/countdown.html。我数据库中的每个“事件”表都有一个“日期”列。 date = models.DateTimeField() 日期时间字段 ({{ event.date }}) 将返回“Aug. 15, 2012, 12:23 p.m.”。 默认插件格式为“dHMS”。

如何让我的 django 日期在这个 jquery 插件中正确显示?或者更好。如何将我的日期时间字段变成:

 {{ countdown_day }},
 {{ countdown_hour }},
 {{ countdown_min }},
 {{ countdown_sec }} ?

脚本:

(function(){
     var eventDate = '{{ event.date }}'; 
     $('#defaultCountdown').countdown({until: eventDate});      
     $('#removeCountdown').toggle(function() { 
         $(this).text('Re-attach'); 
         $('#defaultCountdown').countdown('destroy'); 
     }, 
    function() { 
        $(this).text('Remove'); 
        $('#defaultCountdown').countdown({until: eventDate}); 
    });
})();

【问题讨论】:

    标签: jquery python django


    【解决方案1】:

    您可以使用“日期”过滤器 (documentation) 将 Python 日期格式化为 Django 模板。

    day:     {{ countdown|date:"D" }}
    hour:    {{ countdown|date:"g" }}
    minute:  {{ countdown|date:"i" }}
    second:  {{ countdown|date:"s" }}
    

    要将日期转换为 javascript 日期,我使用 {{ countdown|date:"U" }} 来获取 unix 时间戳。您可以从这里创建一个 javascript 日期对象,如下所示:

     new Date({{ countdown|date:"U" }} / 1000);
    

    【讨论】:

    • 谢谢。我正在研究isoformat(),但这似乎更适合我的需求。
    【解决方案2】:

    其实获取正确日期的代码是:

    new Date({{ countdown|date:"U" }} * 1000);
    

    因为 Django 以秒为单位返回时间,而 JS 期望以毫秒为单位。

    Javascript Date object definition

    【讨论】:

      猜你喜欢
      • 2014-03-28
      • 2019-08-06
      • 2020-10-13
      • 2014-01-29
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 2015-01-31
      相关资源
      最近更新 更多