| |
Архив эхоконференции RU.PHP
- RU.PHP ------------------------------------------------------------- RU.PHP -
Msg : #6056 [572]
От : Serge V. Tarasov 2:5020/400 22 января 04, 14:03
Кому : Asya Hmelentsova 23 января 04, 23:56
Тема : Re: Преобразовать строковую дату в таймстамп
-------------------------------------------------------------------------------
From: "Serge V. Tarasov"
"Asya Hmelentsova"
сообщил/сообщила в новостях следующее:
news:1074774614@p111.f73.n5030.z2.FIDOnet.ftn...
> Чем можно преобразовать строковую дату (полученную из формы) в обычную
дату
> (timestamp). Что ничего подходящего найти не могу. Поделитесь мыслями
плиз.
Я, например, делал так:
// Функция проверяющая дату и возвращающая ее timestamp.
// Дата должна быть введена в формате
// дд.мм.гггг или, если установлен параметр $allowtime,
// то в формате дд.мм.гггг чч.мм
// Если дата не подходит, возвращается текущий timestamp
function validdate($date, $allowtime='')
{
$error = false;
if (!$allowtime) $format = "/^\d{2}\.\d{2}\.\d{4}$/";
else $format = "/^\d{2}\.\d{2}\.\d{4} \d{1,2}\:\d{2}$/";
if (!preg_match($format, $date)) $error = true;
if (!$error)
{
if ($allowtime)
{
$a = explode(' ', $date);
$date = $a[0];
$time = $a[1];
$t=explode(':', $time);
if ($t[0] > 23 || $t[0] < 0) $error = true;
elseif ($t[1] > 59 || $t[1] < 0) $error = true;
}
$d = explode('.', $date);
if ($d[0] > 31 || $d[0] < 1) $error = true;
elseif ($d[1] > 12 || $d[1] < 1) $error = true;
elseif ($d[2] > 2030 || $d[2] < 1970) $error = true;
}
if ($error) return time();
if (!$allowtime) return mktime(0, 0, 0, $d[1], $d[0], $d[2]);
return mktime($t[0], $t[1], 0, $d[1], $d[0], $d[2]);
}
Удачи,
Max.
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5.1
* Origin: Talk.Mail.Ru (2:5020/400)
При переходе по баннеру - скидка 25% на первый месяц обслуживания!
 При переходе по баннеру - скидка 25% на первый месяц обслуживания!
|