powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Валидация даты.
28 сообщений из 28, показаны все 2 страниц
Валидация даты.
    #34946414
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как в JavaScript сделать валидацию на дату типа: yyyy/MM/dd HH:mm:ss ?
...
Рейтинг: 0 / 0
Валидация даты.
    #34946515
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
var date = new Date();
date.setTime(Date.parse("2007/11/17 1:43:28"));
Далее можно получить дату в приемлемом виде:
Код: plaintext
alert(date.toLocaleString());
или получить значения:
Код: plaintext
1.
2.
year = date.getFullYear();
month = date.getMonth();
day = date.getDate();
...
Рейтинг: 0 / 0
Валидация даты.
    #34946612
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruck
Код: plaintext
1.
var date = new Date();
date.setTime(Date.parse("2007/11/17 1:43:28"));
Далее можно получить дату в приемлемом виде:
Код: plaintext
alert(date.toLocaleString());
или получить значения:
Код: plaintext
1.
2.
year = date.getFullYear();
month = date.getMonth();
day = date.getDate();



Видимо не очень понятно объяснил. Есть поле и нужно проверить, ввели ли туда дату в формате: yyyy/MM/dd HH:mm:ss .
...
Рейтинг: 0 / 0
Валидация даты.
    #34946619
GWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вам помогут регулярные выражения
...
Рейтинг: 0 / 0
Валидация даты.
    #34946620
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GWhiteвам помогут регулярные выражения
Нифига. Там нельзя указать например год не меньше 1900 и не больше 2100.
...
Рейтинг: 0 / 0
Валидация даты.
    #34946623
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так какие вопросы? Есть некий input c id=enterDate ...
Пишем:
Код: plaintext
1.
2.
3.
4.
5.
6.
var date = new Date();
try {
date.setTime(Date.parse(document.getElementById("enterDate")));
alert("Date is correct");
} catch (exception) {
alert("Date is incorrect");
}
Думаю, остальное не надо объяснять ...
...
Рейтинг: 0 / 0
Валидация даты.
    #34946625
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чёрт. Я совсем забыл, что JavaScript тоже содержит исключения, а ведь о них сразу подумал. Сейчас проверим...
...
Рейтинг: 0 / 0
Валидация даты.
    #34946626
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, прелесть такого способа в том, что пользователь может ввести "2007-11-17 10:30" или "2007/11/17 10:30.28" или "17-11-2007 10.30", а скрипт это схавает.
...
Рейтинг: 0 / 0
Валидация даты.
    #34946630
GWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот здесь есть пример влидации даты на соответствие классически шаблонам
dd-MM-yyyy и dd/MM/yyyy
А в целом в инете полно готовых regexp выражений на всевозможные случаи жизни, хотя у вас формат мягко говоря оригинальный :)
...
Рейтинг: 0 / 0
Валидация даты.
    #34946631
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckКстати, прелесть такого способа в том, что пользователь может ввести "2007-11-17 10:30" или "2007/11/17 10:30.28" или "17-11-2007 10.30", а скрипт это схавает.


Так это не есть хорошо.
Надо глянуть в мануалах, может быть у Date.parse() есть какие-то форматеры или прочие штуки...
...
Рейтинг: 0 / 0
Валидация даты.
    #34946633
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GWhiteВот здесь есть пример влидации даты на соответствие классически шаблонам
dd-MM-yyyy и dd/MM/yyyy
А в целом в инете полно готовых regexp выражений на всевозможные случаи жизни, хотя у вас формат мягко говоря оригинальный :)

Это гады америкосы такой формат хотят.
...
Рейтинг: 0 / 0
Валидация даты.
    #34946634
GWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А сори, формат обычный, глаз подвел
...
Рейтинг: 0 / 0
Валидация даты.
    #34946635
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GWhiteА сори, формат обычный, глаз подвел

Бывает...
...
Рейтинг: 0 / 0
Валидация даты.
    #34946641
GWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruckТак какие вопросы? Есть некий input c id=enterDate ...
Пишем:
Код: plaintext
1.
2.
3.
4.
5.
6.
var date = new Date();
try {
date.setTime(Date.parse(document.getElementById("enterDate")));
alert("Date is correct");
} catch (exception) {
alert("Date is incorrect");
}
Думаю, остальное не надо объяснять ...


Тут надо проверить, как парсятся альтернативные форматы
например
11-12-2007 - в принципе русский чел сразу скажет что это одиннадцатое декабря
а америкос что 12 ноября
Я о том что при корректной дате с точки зрения Date.parse() можно получить не совсем то...
а в регэкспе такого уже не будет...
...
Рейтинг: 0 / 0
Валидация даты.
    #34946645
GWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
....тем более что вопрос иммено в том, что бы проверить на соответствие сигнатуре, а не только на корректность даты как таковой
...
Рейтинг: 0 / 0
Валидация даты.
    #34946646
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот скрин....

Собственно может так что-то кому-то поможет. Я сейчас капаю в сторону формата в Date.parse()...
...
Рейтинг: 0 / 0
Валидация даты.
    #34946654
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слушайте, ребят. Наверное всё-таки придётся свой парсер писать и уж там копаться... :-(
...
Рейтинг: 0 / 0
Валидация даты.
    #34946664
GWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
man.without.faceСлушайте, ребят. Наверное всё-таки придётся свой парсер писать и уж там копаться... :-(

Никому не говори тока :)
...
Рейтинг: 0 / 0
Валидация даты.
    #34946666
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GWhite man.without.faceСлушайте, ребят. Наверное всё-таки придётся свой парсер писать и уж там копаться... :-(

Никому не говори тока :)

Да просто потом вытащу в отдельный файл и всё. Никто и не заметит. Мля, ну не могу я ничё придумать проще. :(

А больше никаких вариантов нет, да?
...
Рейтинг: 0 / 0
Валидация даты.
    #34946700
GWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
man.without.face GWhite man.without.faceСлушайте, ребят. Наверное всё-таки придётся свой парсер писать и уж там копаться... :-(

Никому не говори тока :)

Да просто потом вытащу в отдельный файл и всё. Никто и не заметит. Мля, ну не могу я ничё придумать проще. :(

А больше никаких вариантов нет, да?

А чем тебе регулярные выражения не нравятся?
...
Рейтинг: 0 / 0
Валидация даты.
    #34946704
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GWhite man.without.face GWhite man.without.faceСлушайте, ребят. Наверное всё-таки придётся свой парсер писать и уж там копаться... :-(

Никому не говори тока :)

Да просто потом вытащу в отдельный файл и всё. Никто и не заметит. Мля, ну не могу я ничё придумать проще. :(

А больше никаких вариантов нет, да?

А чем тебе регулярные выражения не нравятся?

1. Не помню я их.
2. Ими если не ошибаюсь нельзя задать ограничения. (год 1900-2100). Не помню кстати как там с месяцами и днями.

Ошибаюсь? Покажи пример или что-то в этом роде.
...
Рейтинг: 0 / 0
Валидация даты.
    #34946745
GWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я ссылку дал, основа выражений - сравнение строк и символов, там нет дат как таковых.
Потрать время, сделай по уму, а инфа в мозге пригодится на будущее.
...
Рейтинг: 0 / 0
Валидация даты.
    #34946747
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GWhiteя ссылку дал, основа выражений - сравнение строк и символов, там нет дат как таковых.
Потрать время, сделай по уму, а инфа в мозге пригодится на будущее.

Время будет - сделаю. Сейчас другие баги фиксить надо.
...
Рейтинг: 0 / 0
Валидация даты.
    #34946750
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хоть убей - не понимаю, чем описанный способ не нравится.
Что в результате надо получить? - Проверить дату и получить в правильном формате?
Тогда зачем заморачиваться? - Через эксепшн получаешь проверку даты на валидность, получаешь объект типа Date, а в строчку вставляешь свой результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function validator() {
	var date = new Date();
	try {
		date.setTime(Date.parse(document.getElementById("enterDate").value));
		document.getElementById("enterDate").value = date.getYear() + "/" + date.getMonth() + "/" + date.getDate() + " " + date.getHour() + ":" + date.getMinute() + ":" + date.getSecond();
	} catch (exception) {
		alert("Date is incorrect");
		document.getElementById("enterDate").focus();
		return;
	}
}
И все - есть проверка на валидность и правильный результат.
Мог где-то ошибиться со слешами и точностью методов (неохота копаться искать) - если что, на MSDN есть описание всех методов.
...
Рейтинг: 0 / 0
Валидация даты.
    #34946755
GWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruckХоть убей - не понимаю, чем описанный способ не нравится.
Что в результате надо получить? - Проверить дату и получить в правильном формате?
Тогда зачем заморачиваться? - Через эксепшн получаешь проверку даты на валидность, получаешь объект типа Date, а в строчку вставляешь свой результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function validator() {
	var date = new Date();
	try {
		date.setTime(Date.parse(document.getElementById("enterDate").value));
		document.getElementById("enterDate").value = date.getYear() + "/" + date.getMonth() + "/" + date.getDate() + " " + date.getHour() + ":" + date.getMinute() + ":" + date.getSecond();
	} catch (exception) {
		alert("Date is incorrect");
		document.getElementById("enterDate").focus();
		return;
	}
}
И все - есть проверка на валидность и правильный результат.
Мог где-то ошибиться со слешами и точностью методов (неохота копаться искать) - если что, на MSDN есть описание всех методов.


юзер вводит Jul 8, 2005 , Date.parse("Jul 8, 2005") не создает исключение....но
Jul 8, 2005 не подходит под yyyy/MM/dd HH:mm:ss - в результате шляпа
...
Рейтинг: 0 / 0
Валидация даты.
    #34946760
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а) это выдает "2005/07/08 00:00:00" - чем плохо?
б) кто мешает поставить условия после валидности на присутствие данных? - например, часы и минуты обязательны, а секунды - нет.

Просто в моем понимании возможной задачи такое решение удобно, невелико и просто - что проще работать с дискретными величинами, составляя из них нужное? А вот распарсить такую строчку с защитой "от дурака" - повозиться надо, нагромаждение структуры и не гарантирован 100%-ный результат.
Возможно, если бы ты раскрыл цель, было бы проще разрешить твою проблему.
...
Рейтинг: 0 / 0
Валидация даты.
    #34946763
Фотография man.without.face
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мля, какая цель.... Есть поле и надо чтобы в него не писали всякую лажу. А была только чётко построенная дата. Ща напиши туда хз чё и валится. А мне такое конечно же не надо.
...
Рейтинг: 0 / 0
Валидация даты.
    #34946764
GWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
man.without.faceМля, какая цель.... Есть поле и надо чтобы в него не писали всякую лажу. А была только чётко построенная дата. Ща напиши туда хз чё и валится. А мне такое конечно же не надо.

+1
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Валидация даты.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]