Qual è il modo migliore per inviare una data / ora in una vista Django?
-
18-09-2019 - |
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?
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