2009-09-30 75 views
0

我想建立一个视图,允许用户获得一段时间内发生的事情列表。在django视图中发布日期/时间的最佳方式是什么?

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

这似乎相当单调乏味,特别是如果我想在请求中包含多个日期。我可以结束与看起来像/ events/between/2009/09/29/8/23/2006/11/16/14/45/

的网址有没有简单的(javascipt)方法来转换日期/时间到时间戳,并将其作为int传入,然后我可以将其转换为视图内的日期时间?

回答

1

我d使用像这样的更可读的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) + '/'); 
0

你可以做这样的事情:

变种d =新的日期( “2009-09-30”); var timestamp = d.getTime()/ 1000.0;

这会给你一个使用JavaScript的时间戳。

0
  • /事件/ 2009/- >所有的事件在2009年
  • /事件/ 2009/09/- >所有在2009年8月
  • 事件
  • /事件/ 2009/9月29日/ - > 2009年8月29日所有事件
  • /events/2009/09/29/8/- > 2009年8月29日8点至8点59分的所有活动
  • /events/2009 2009年09月29日8:23的所有活动
  • /events/2009/09/29/8/23 /?10 - >所有来自8: 2009年8月29日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日至9月8日的所有活动-09
  • /事件/ 2009/09/2 - ?>所有在八月和九月
  • 事件
  • /事件/ 2009/2? - >所有在2009年的事件和2010
相关问题