Domanda

Mi piacerebbe costruire una visione che permette all'utente di ottenere un elenco di cose che stanno accadendo intorno a un certo periodo di tempo.

Qual è il modo migliore per costruire questa richiesta? Per esempio. Se volevo ottenere tutti gli eventi che stanno accadendo in questo momento ho potuto postare / eventi / 2009/09/29/8/23 /

Che sembra piuttosto noioso, soprattutto se voglio avere più date in una richiesta. Potrei finire con gli URL che sembrano / eventi / tra / 2009/09/29/8/23/2006/11/16/14/45 /

C'è un modo semplice (Javascipt) per convertire una data / ora per un timestamp e passare che come un int, che posso poi convertire in un datetime all'interno della vista?

È stato utile?

Soluzione

mi piacerebbe utilizzare una struttura di URL più leggibile in questo modo:

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

Ecco alcuni Javascript di base che mostra per costruire questa struttura:

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

Altri suggerimenti

Si potrebbe fare qualcosa di simile:

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

Questo ti porterà un timestamp usando JavaScript.

  • / eventi / 2009 / -> tutti gli eventi nel 2009
  • / eventi / 2009/09 / -> tutti gli eventi in Ago-09
  • / eventi / 2009/09/29 / -> tutti gli eventi 29-ago-09
  • / eventi / 2009/09/29/8 / -> tutti gli eventi dalle 8:00 alle 08:59, il 29-ago-09
  • / eventi / 2009/09/29/8/23 / -> tutti gli eventi a 08:23 il 29-ago-09
  • / eventi / 2009/09/29/8/23/10 -?> Tutti gli eventi da 08:23 a 08:33, il 29-ago-09
  • / eventi / 2009/09/29/8/23/91 -?> Tutti gli eventi da 08:23 a 09:54, il 29-ago-09
  • / eventi / 2009/09/29/8/10 -?> Tutti gli eventi dalle 8:00 alle 18:00 il 29-ago-09
  • / eventi / 2009/09/29/10 -?> Tutti gli eventi dal 29-ago-09 a 8-set-09
  • / eventi / 2009/09/2 -?> Tutti gli eventi nel mese di agosto e settembre
  • / eventi / 2009/2 -?> Tutti gli eventi nel 2009 e 2010
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top