【问题标题】:What is the best way to post a date/time into a django view?将日期/时间发布到 django 视图中的最佳方法是什么?
【发布时间】:2010-12-02 12:12:22
【问题描述】:

我想构建一个视图,允许用户获取在特定时间发生的事情的列表。

构建此请求的最佳方式是什么?例如。如果我想了解现在正在发生的所有事件,我可以发布到 /events/2009/09/29/8/23/

这似乎相当乏味,尤其是如果我想在请求中包含多个日期。我最终可能会得到看起来像 /events/between/2009/09/29/8/23/2006/11/16/14/45/ 的网址

是否有一种简单的 (javascipt) 方法可以将日期/时间转换为时间戳并将其作为 int 传递,然后我可以将其转换为视图内的日期时间?

【问题讨论】:

    标签: javascript django django-views


    【解决方案1】:

    我会使用这样更易读的 URL 结构:

    /events/2009-09-29/0823/
    /events/2009-09-29/0823/to/2009-10-10/2100/
    

    这里有一些基本的 Javascript 展示来构建这个结构:

    function pad(number) {
        return (number < 10 ? '0' : '') + number
    }
    function simpleDate(date) {
        return date.getUTCFullYear() + '-' + pad(date.getUTCMonth()) + '-' + pad(date.getUTCDay())
    }
    function simpleTime(date) {
        return pad(d.getUTCHours()) + pad(d.getUTCMinutes())
    }
    var d = new Date();
    alert('/events/' + simpleDate(d) + '/' + simpleTime(d) + '/');
    

    【讨论】:

      【解决方案2】:

      你可以这样做:

      var d = new Date("2009-09-30"); var 时间戳 = d.getTime()/1000.0;

      这将使用 JavaScript 为您提供时间戳。

      【讨论】:

        【解决方案3】:
        • /events/2009/ -> 2009年的所有事件
        • /events/2009/09/ -> 09 年 8 月的所有事件
        • /events/2009/09/29/ -> 2009 年 8 月 29 日的所有事件
        • /events/2009/09/29/8/ -> 2009 年 8 月 29 日 8:00 到 8:59 的所有事件
        • /events/2009/09/29/8/23/ -> 2009 年 8 月 29 日 8:23 的所有事件
        • /events/2009/09/29/8/23/?10 -> 2009 年 8 月 29 日 8:23 到 8:33 的所有事件
        • /events/2009/09/29/8/23/?91 -> 2009 年 8 月 29 日 8:23 到 9:54 的所有事件
        • /events/2009/09/29/8/?10 -> 2009 年 8 月 29 日 8:00 到 18:00 的所有事件
        • /events/2009/09/29/?10 -> 2009 年 8 月 29 日至 2009 年 9 月 8 日的所有事件
        • /events/2009/09/?2 -> 8 月和 9 月的所有事件
        • /events/2009/?2 -> 2009 年和 2010 年的所有事件

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-24
          • 2011-06-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多