Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Проверка на внесение даты


Автор: Leoo 15.12.2008, 11:05
Есть поле input в нем есть дата в формате 2008-15-12 11:04:37
если пользователь захотел ее исправить, как мне сделать чтоб он исправлял ее по заданному формату, а не например 20ф8=15-12 12:4к.23

подскажите пожалуйста

Автор: bars80080 15.12.2008, 11:21
сделать шесть полей с проверкой на цифру в каждом и переходом стрелочками между ними

Автор: Leoo 15.12.2008, 11:26
я с начало тоже так хотел, но не разрешают так, надо одно, но с проверкой(((

Автор: bars80080 15.12.2008, 14:06
Цитата(Leoo @  15.12.2008,  10:26 Найти цитируемый пост)
надо одно

а как ты определишь где год или месяц? допустим не 2008-12-15, а 15-12-08 напишет. как определить формат?

вот здесь проверка на ввод цифр (не помню уже чья), хотя она мне не очень и нравится

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Title block</title>
<script type="text/javascript">
<!--
function onlyInt(val) {
    var result = '';
    for (var i=0; i<val.length; i++)
    {
        switch (val.substring(i,i+1))
        {
            case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':
                result += val.substring(i,i+1);
            break;
        }
    }
    return result;
}

function count_change() {
    var prodcount = document.getElementById('prodcount');
    if (prodcount.value != onlyInt(prodcount.value)) prodcount.value = onlyInt(prodcount.value);
    if (prodcount.value == '') prodcount.value = 1;
    if (parseInt(prodcount.value) < 1) prodcount.value = 1;
    if (parseInt(prodcount.value) > 9999) prodcount.value = 9999;
}

function start_count_changer()
{
    count_change();
    setTimeout("start_count_changer()", 1);
}

//-->
</script>
</head>
<body>
<input type="text" name="prodcount" id="prodcount" value="1">
<script type="text/javascript" language="javascript">start_count_changer();</script>
</body>
</html>
она именно на поли чисто для цифр. тире, пробел и двоточие сложности доставить не должны

Автор: Leoo 15.12.2008, 15:08
Большое спасибо за помощь

Автор: IDVsbruck 15.12.2008, 16:30
Можно пользоваться
Цитата

Метод parse
Синтаксис: Date.parse(строка)
Аргументы: строка — строковое выражение
Результат: числовое значение
Метод parse преобразует дату, заданную строкой, в количество миллисекунд относительно базового времени, и возвращает его. Строка: должна содержать дату и время в определенном формате. Допускаются следующие форматы даты (пробелы и запятые трактуются как разделители):

"7/20/82"    "July 10, 1995"     "12-11-76"    "10 Jan 2000"

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

"11:"    "11:45"     "23:45:12"    "11:45:12 PM"

После даты и времени может стоять указатель временной зоны следующего вида (обе формы эквивалентны и означают на 4 часа 30 минут больше UTC):

"UTC+0430"    "GMT+0430"

Если такого указателя нет, то время считается местным. Перед датой и временем может стоять название дня недели; если оно не соответствует заданной дате, то игнорируется.

Это статический метод объекта Date, поэтому для доступа к нему используется форма Date.parse, а не объект.parse.

Например, сценарий

var d = new Date();
d.setTime(Date.parse("21 May 1958 10:12"));
document.write(d.toLocaleString());
выведет на экран обозревателя примерно такую строку: Wednesday, May 21, 1958 10:12:00 (точный вид этой строки зависит от обозревателя и настроек операционной системы).

Можно применять этот метод и в случае возврата нелигитимного значения выдавать ошибку.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)