splincodewd
@splincodewd
Developer

Как фильтровать временной интервал поиска на бэкэнде?

У меня есть API для поиска информации в определенном интервале

http://localhost/search?query=text&start=1482487711666&end=1482491311666


где start - в миллисекунда от какой даты и времени искать
end - до какой даты и времени

написал функцию в классе поиска:

class Search {

    requestTime(typeTime){
        let nowDate = new Date();
        switch (typeTime){
            case "past_hour":
                let hour = 60 * 60 * 1000; // 1h = 3600000 ms
                return {start: nowDate - hour, end: nowDate};
                break;
            case "past_24hour":
                let day = 60 * 60 * 24 * 1000; // day = 86400000 ms
                return {start: nowDate - day, end: nowDate};
                break;
            case "past_week":
                let week = 60 * 60 * 24 * 7 * 1000; // week = 604800000 ms
                return {start: nowDate - week, end: nowDate};
                break;
            case "past_month":
                let week = 60 * 60 * 24 * 7 * 1000; // week = 604800000 ms
                return {start: nowDate - week, end: nowDate};
                break;
            case "past_year":

                break;
            case "past_interval":

                break;
        }
    }


}


Но кажется какой-то велосипед! Нет ли каких то готовых реализаций в стандартном объекте Date? Просто вычитать месяц тупым способом:

let month = 60 * 60 * 24 * 7 * 30 * 1000;

Явно нельзя, ибо в месяце разное количество дней

И год тоже бывает с разным количеством дней (високосный и нет)
  • Вопрос задан
  • 85 просмотров
Решения вопроса 2
vawsan
@vawsan
Frontend Developer
new Date(1482487711666).getMonth() + 1
Ответ написан
Комментировать
AMar4enko
@AMar4enko
Про moment.js уже написали?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
splincodewd
@splincodewd Автор вопроса
Developer
Блин, лучше бы поискал сначала
stackoverflow.com/questions/7937233/how-do-i-calcu...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы