Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравненние дат 
V
    Опции темы
doook
Дата 28.10.2010, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 31.5.2007
Где: Украина, Киев

Репутация: нет
Всего: нет



Доброго дня!
Задача состоит в том, что нужно построить условие для отбора объектов из массива которые по значениям свойств датаНачала и датаКонца их действия, подходят нам для вывода их на экран...

Пример объекта:
Код

var list = [{
                name: "obj1",
                startTime: "Sun Oct 10 2010 04:05:06 GMT-0700",
                endTime: "Sun Oct 30 2010 04:05:06 GMT-0700"
},
{
                name: "obj2",
                startTime: "Sun Oct 20 2010 04:05:06 GMT-0700",
                endTime: "Sun Oct 31 2010 04:05:06 GMT-0700"
},
{
                name: "obj3",
                startTime: "Sun Oct 28 2010 04:05:06 GMT-0700",
                endTime: "Sun Nov 30 2010 04:05:06 GMT-0700"
}];


Ф-ция проверки:
Код

checkDate : function(item)
{
          var start = new Date(item.startTime);
          var end = new Date(item.endTime);
          var time = new Date();
           
           
           if (start.getFullYear() <= time.getFullYear() <= end.getFullYear()) {
         if (start.getMonth() <= time.getMonth() <= end.getMonth()) {
             if (start.getDate() <= time.getDate() <= end.getDate()) {
                 return true;
             }
         }
       }
         return false;
}


Проблема в том что эта функция всегда возвращает true...
PM MAIL ICQ   Вверх
CruorVult
Дата 28.10.2010, 12:09 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



лучше проводить операции с датами в time-формате:
Код

checkDate : function(item)
{
          var start = new Date(item.startTime).getTime();
    var end = new Date(item.endTime).getTime();
    var time = new Date().getTime();

    if(start<=time && time<=end) {
        return true;
    }         
    return false;
}


Добавлено @ 12:11
Код

start.getFullYear() <= time.getFullYear() <= end.getFullYear() 

соответствует
Код

start.getFullYear() <= time.getFullYear()  ||  time.getFullYear()<= end.getFullYear() 


Это сообщение отредактировал(а) CruorVult - 28.10.2010, 12:12
PM MAIL Skype   Вверх
doook
Дата 28.10.2010, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 31.5.2007
Где: Украина, Киев

Репутация: нет
Всего: нет



Спасибо ! smile
А тройное сравнение вообще можно делать?

Это сообщение отредактировал(а) doook - 28.10.2010, 13:57
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1084 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.