Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Условия сравнения даты из input?

НИл Россов Ученик (99), на голосовании 1 месяц назад
Как можно сделать рабочим условие, когда указывается дата в input?
Голосование за лучший ответ
Roots Мудрец (13489) 2 месяца назад
Интерпретатор JavaScript не понимает, что у тебя там дата указана. Для него это строка.
Сравнивать, что больше — одна строка или другая, это ошибка. У строки нет какого-то числового значения.

В JS есть встроенный объект для работы со временем — Date.
Используй парсинг даты из строки, чтобы получить объект Date и сравнивай его с определённых методов, которые ты найдёшь в документации.
НИл РоссовУченик (99) 2 месяца назад
спасибо, уже нашел)
ПавелПросветленный (25615) 2 месяца назад
У символов есть числовые значение. Сравнение строк в JS это не ошибка. Операторы '<' и '>' сравнивают каждый символ (его номер) с лева на право и возвращают результат при первом неравенстве символа, что подходит для чисел и формата даты 'yyyy-mm-dd'.
Roots Мудрец (13489) Рукажоп, я не js'ер, но такое сравнение выглядит очень странно. Лучше пользователя методами классов.
ПавелПросветленный (25615) 2 месяца назад
Даже больше скажу. Точно так же как в JS сравнивается и в C++:
Павел Просветленный (25615) 2 месяца назад
По моему, простейший способ:
 if(Date.parse(dateHired) < Date.parse('2015-01-01')){
// твой код
}
Время в устройствах выражается в пройдённых миллисекунд начиная с 1970-01-01. Date.parse() преобразует дату в эти миллисекунды. У меня в браузере формат YYYY-MM-DD по умолчанию, но возможно он может отличатся в зависимости от твоего региона, я не уверен. YYYY-MM-DD вроде как международный, судя по инфе в интернете.

Не понятно что ты там конкретно пытаешься сравнить. Поменял лишь название переменной на более соответствующее.
ПавелПросветленный (25615) 2 месяца назад
Хотя,
 if(dateHired < '2015-01-01'){ 
// твой код
}
должен работать.
Сравнение идёт посимвольно с лево на право, что при данном формате даты работает корректно.
Похожие вопросы