Как лучше всего опубликовать дату/время в представлении Django?

StackOverflow https://stackoverflow.com/questions/1495595

  •  18-09-2019
  •  | 
  •  

Вопрос

Я хотел бы создать представление, которое позволит пользователю получить список событий, происходящих в определенное время.

Как лучше всего составить этот запрос?Например.Если бы я хотел узнать обо всех событиях, которые происходят прямо сейчас, я мог бы опубликовать сообщение в /events/2009/09/29/8/23/.

Это кажется довольно утомительным, особенно если я хочу указать в запросе несколько дат.В итоге я мог бы получить URL-адреса, которые выглядят так: /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) + '/');

Другие советы

Вы можете сделать что-то вроде этого:

var d = новая дата («30 сентября 2009 г.»);вар временная метка = d.getTime()/1000.0;

Это даст вам метку времени с использованием JavaScript.

  • /events/2009/ -> все события 2009 года
  • /events/2009/09/ -> все события августа 2009 г.
  • /events/2009/09/29/ -> все события 29 августа 2009 г.
  • /events/2009/09/29/8/ -> все события с 8:00 до 8:59 29 августа 2009 г.
  • /events/2009/09/29/8/23/ -> все события в 8:23 29 августа 2009 г.
  • /events/2009/09/29/8/23/?10 -> все события с 8:23 до 8:33 29 августа 2009 г.
  • /events/2009/09/29/8/23/?91 -> все события с 8:23 до 9:54 29 августа 2009 г.
  • /events/2009/09/29/8/?10 -> все события с 8:00 до 18:00 29 августа 2009 г.
  • /events/2009/09/29/?10 -> все события с 29 августа 2009 г. по 8 сентября 2009 г.
  • /events/2009/09/?2 -> все события августа и сентября
  • /events/2009/?2 -> все события 2009 и 2010 годов.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top