Forum Webscript.Ru
Программирование => PHP => Тема начата: Screamer от 15 Апреля 2002, 19:40:27
-
Как пропарсить дату, введенную пользователем, и превратить ее в timestamp? Причем чтобы она была дуракоустойчивой и понимала даты типа 30,12,2 (с разными разделителями и неполным годом, или вообще без года). А то же самое, но со временем (20\\11\\02 13:45)?
-
лучше сделай ввод даты через select-ы
Или укажи юзеру в каком формате дату вводить, и если формат неправильный, выведи ему всякую руганью
Так будет гораздо проще.
-
http://www.php.net/mktime
-
Причем чтобы она была дуракоустойчивой
Элементрарно: создай поля минута, секунда, час, день, месяц, год :)
$timestamp=mktime("час","минуты","секунды","месяц","день","год");
-
Я усложню вопрос. Дело в том, что множество полей на каждый параметр занимает много места и долго вводится, поэтому хотелось бы парсить строку. Я нарисовал такую функцию:
function parse_date($d)
{
$pd=preg_match("/(\\d+)[.,\\/\\-]?(\\d+)[.,\\/\\-]?(\\d*)/",$d,$matches);
if($pd)
{
if(count($matches)>3 && $matches[3]!=0)
$pd=mktime(0,0,0,$matches[2],$matches[1],$matches[3]);
else
$pd=mktime(0,0,0,$matches[2],$matches[1]);
}
return $pd;
}
Но она не совсем правильно отрабатывает. Как ее усовершенсововать или наоборот, упростить?:insane:
-
http://www.zend.com/codex.php?id=725&single=1