Forum Webscript.Ru

Программирование => PHP => Тема начата: Screamer от 15 Апреля 2002, 19:40:27

Название: Парсинг даты/времени
Отправлено: Screamer от 15 Апреля 2002, 19:40:27
Как пропарсить дату, введенную пользователем, и превратить ее в timestamp? Причем чтобы она была дуракоустойчивой и понимала даты типа 30,12,2 (с разными разделителями и неполным годом, или вообще без года). А то же самое, но со временем (20\\11\\02 13:45)?
Название: Парсинг даты/времени
Отправлено: Макс от 15 Апреля 2002, 19:47:52
лучше сделай ввод даты через select-ы
Или укажи юзеру в каком формате дату вводить, и если формат неправильный, выведи ему всякую руганью

Так будет гораздо проще.
Название: Парсинг даты/времени
Отправлено: Dm от 16 Апреля 2002, 00:32:21
http://www.php.net/mktime
Название: Парсинг даты/времени
Отправлено: AlieN от 16 Апреля 2002, 10:07:05
Цитировать
Причем чтобы она была дуракоустойчивой

Элементрарно: создай поля минута, секунда, час, день, месяц, год :)

$timestamp=mktime("час","минуты","секунды","месяц","день","год");
Название: Парсинг даты/времени
Отправлено: Screamer от 17 Апреля 2002, 22:02:07
Я усложню вопрос. Дело в том, что множество полей на каждый параметр занимает много места и долго вводится, поэтому хотелось бы парсить строку. Я нарисовал такую функцию:

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:
Название: Парсинг даты/времени
Отправлено: Dm от 17 Апреля 2002, 22:20:46
http://www.zend.com/codex.php?id=725&single=1