Pergunta

Eu gostaria de construir uma visão que permite ao usuário obter uma lista de coisas que estão acontecendo em torno de um certo tempo.

Qual é a melhor maneira de construir este pedido? Por exemplo. Se eu quisesse obter todos os eventos que estão acontecendo agora eu poderia postar / eventos / 2009/09/29/8/23 /

Isso parece bastante tedioso, especialmente se eu quiser ter várias datas em um pedido. Eu poderia acabar com URLs que parecem / eventos / entre / 2009/09/29/8/23/2006/11/16/14/45 /

Existe uma simples (javascipt) maneira de converter uma data / hora para um timestamp e passar que no como um int, que pode, então, converter para uma data e hora dentro do ponto de vista?

Foi útil?

Solução

Eu usaria uma estrutura de URL mais legível assim:

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

Eis alguns Javascript básico mostrando a construir esta estrutura:

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) + '/');

Outras dicas

Você poderia fazer algo parecido com isto:

var d = new Date ( "2009-09-30"); var timestamp = d.getTime () / 1000,0;

Isso vai te dar um timestamp usando JavaScript.

  • / eventos / 2009 / -> todos os eventos em 2009
  • / eventos / 2009/09 / -> todos os eventos em Set-09
  • / eventos / 2009/09/29 / -> todos os eventos 29-Aug-09
  • / eventos / 2009/09/29/8 / -> todos os eventos das 8:00 às 08:59, em 29-Aug-09
  • / eventos / 2009/09/29/8/23 / -> todos os eventos at 8:23 em 29-Aug-09
  • / eventos / 2009/09/29/8/23/10 -> todos os eventos a partir de 08:23 a 08:33, em 29-Aug-09
  • / eventos / 2009/09/29/8/23/91 -> todos os eventos a partir de 08:23 a 09:54, em 29-Aug-09
  • / eventos / 2009/09/29/8/10 -> todos os eventos das 8:00 às 18:00, em 29-Aug-09
  • / eventos / 2009/09/29/10 -> todos os eventos de 29-Aug-09-8-Set-09
  • / eventos / 2009/09/2 -?> Todos os eventos em agosto e setembro
  • / eventos / 2009/2 -> todos os eventos em 2009 e 2010
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top