Многократное сравнение даты в JavaScript - PullRequest
0 голосов
/ 16 января 2011

Я пытаюсь проверить, получить и сравнить 2 даты.

Даты поступают из 2-х текстовых вводов и в настоящее время отформатированы как следующий пример: 17/01/2011 00:00

Как мне преобразовать эту строку в дату, используя объект Date?

Я пытаюсь подтвердить это на следующих условиях:

  1. Дата должна быть в правильном формате (17/01/2011 00:00)
  2. Дата должна быть в будущем (Как мне сделать, учитывая, что JS работает на локальном компьютере, а дата может быть неправильно установлена ​​на компьютере пользователя?
  3. Первая дата должна быть раньше второй. (это входные данные from_date -> to_date).

Не могли бы вы помочь?

Спасибо

Ответы [ 3 ]

0 голосов
/ 16 января 2011

Немного другой подход,

  1. Если еще не слишком поздно, вы можете принудительно установить действительность даты, предоставив элемент управления выбором даты / времени, который выведет дату в требуемом формате (их должно быть достаточно много) для некоторых см. это или это . Таким образом, вам не нужно полагаться на то, что пользователь вводит дату в текстовое поле, где он может вводить все, что хочет. Если это невозможно, вы можете попробовать использовать маскирование ввода, которое может помочь пользователю более точно ввести дату в формате текстового поля, например, см. this или даже this , которые позволит вам вводить такие строки, как «сегодня», «через 2 недели» и т. д. Это повысит удобство использования формы.

  2. Для этого вам может потребоваться повторная проверка даты на стороне сервера. Это всегда хорошая идея, чтобы дважды проверить пользовательский ввод как на стороне клиента, так и снова на стороне сервера. Но для проверки на стороне клиента вы можете попробовать библиотеку datejs, о которой я упоминал выше, или создать ее согласно совету Стефаноса.

  3. Уже ответил на # 2.

Надеюсь, это поможет.

0 голосов
/ 16 января 2011

Вы не можете манипулировать временем и датами, не зная часовой пояс.

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

0 голосов
/ 16 января 2011

Что касается проверки формата, вы можете использовать регулярное выражение для этого.

Чтобы узнать текущее время, вам нужно запросить данные с сервера.Один из вариантов - тот, который ваши пользователи получают на веб-страницах с использованием языка поддержки (php, java, ...).Еще один вариант - запросить время у сервера времени с запросом http.Ответом может быть простой текст или XML, или вам может потребоваться обмен данными с другим протоколом, например SOAP.

Чтобы сравнить две даты, вы можете преобразовать их в миллисекунды, а затем просто сравнить значения.Также объект JavaScript Date может быть полезен для преобразований и сравнений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...