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

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

这看起来相当乏味,特别是如果我想在一个请求中有多个日期。我最终可能会得到看起来像 /events/ Between/2009/09/29/8/23/2006/11/16/14/45/ 的网址

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

有帮助吗?

解决方案

我会使用一个更可读的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) + '/');

其他提示

您可以做这样的事情:

变种d =新日期( “2009-09-30”); VAR =时间戳d.getTime()/ 1000.0;

这将使用JavaScript让你的时间戳。

  • /events/2009/ -> 2009 年所有事件
  • /events/2009/09/ -> 2009 年 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 -> 八月和九月的所有活动
  • /events/2009/?2 -> 2009 年和 2010 年的所有事件
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top