Javascript Date Time Validation - гггг-мм-дд чч: мм - PullRequest
1 голос
/ 21 декабря 2011

Я хочу создать очень простую проверку формы javascript. У меня есть два поля ввода, которые заполнены выбора даты и времени. средство выбора даты и времени заполняет поле ввода в формате 2011-12-21 09:58. У меня есть поле ввода для даты сбора и даты прибытия.

Я хочу проверить, что введенное «время доставки» больше, чем «время сбора».

Вывод неудачной проверки должен быть просто во всплывающем окне с надписью «deliverydate» перед «coolectdate».

Можно ли это сделать с помощью javascript, и если да, может ли кто-нибудь дать мне краткий пример?

мой основной HTML-код формы:

...
<td>
<input type="text" id="collectdatetime" name="collectdatetime">
</td>
<td>
<input type="text" id="deliverdatetime" name="deliverdatetime" >
</td>
...

Заранее благодарим за помощь и всех желающих праздников.

С уважением, Райан Смит

Ответы [ 3 ]

1 голос
/ 21 декабря 2011

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

var collectTime = (new Date(document.getElementById("collectdatetime").value)).getTime(),
    deliverTime = (new Date(document.getElementById("deliverdatetime").value)).getTime();
if(deliverTime > collectTime) {
    //Ok!
}

Это создает 2 Date объектов, передавая выбранные значения конструктору, а затем сравнивает времена. Метод getTime возвращает число, представляющее время, прошедшее с 1 января 1970 года 00:00:00 в миллисекундах.

Вот рабочий пример .

1 голос
/ 21 декабря 2011

GВ даже формате ISO8601 строки даты / времени вы можете просто сравнить значения в виде строк.Это одна из красот использования формата ISO8601.Вы просили, чтобы время доставки было после времени сбора, что мне кажется задом наперед, но в любом случае ...

<form onsubmit="return checkDates(this)">
  <table>
    <tr>
      <td>
        <input type="text" id="collectdatetime" name="collectdatetime">
      <td>
        <input type="text" id="deliverdatetime" name="deliverdatetime">
      <td>
        <input type="submit">
  </table>
</form>

<script>
function checkDates(form) {
  if (form.collectdatetime.value >= form.deliverdatetime.value) {
    alert('Collection time must be after deliver time');
    return false;
  }
}
</script>
0 голосов
/ 21 декабря 2011

Вы можете создать объект Date из этих значений и сравнить их:

var collect = new Date($('#collectdatetime').val());
var delivery = new Date($('#deliverdatetime').val());

if (delivery < collect) {
    alert('Delivery date before collect!');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...