MakeTimeStamp: метод Битрикс
Постоянная ссылка: http://bxapi.ru/src/?id=164253
// MakeTimeStamp()
// /bitrix/modules/main/tools.php:441
function MakeTimeStamp($datetime, $format=false)
{
if($format===false && defined("FORMAT_DATETIME"))
$format = FORMAT_DATETIME;
$ar = ParseDateTime($datetime, $format);
$day = intval($ar["DD"]);
$hour = $month = 0;
if (isset($ar["MMMM"]))
{
if (is_numeric($ar["MMMM"]))
{
$month = intval($ar["MMMM"]);
}
else
{
$month = GetNumMonth($ar["MMMM"]);
if (!$month)
$month = intval(date('m', strtotime($ar["MMMM"])));
}
}
elseif (isset($ar["MM"]))
{
$month = intval($ar["MM"]);
}
elseif (isset($ar["M"]))
{
if (is_numeric($ar["M"]))
{
$month = intval($ar["M"]);
}
else
{
$month = GetNumMonth($ar["M"], true);
if (!$month)
$month = intval(date('m', strtotime($ar["M"])));
}
}
$year = intval($ar["YYYY"]);
if (isset($ar["HH"]))
{
$hour = intval($ar["HH"]);
}
elseif (isset($ar["H"]))
{
$hour = intval($ar["H"]);
}
elseif (isset($ar["GG"]))
{
$hour = intval($ar["GG"]);
}
elseif (isset($ar["G"]))
{
$hour = intval($ar["G"]);
}
if (isset($ar['TT']) || isset($ar['T']))
{
$middletime = isset($ar['TT']) ? $ar['TT'] : $ar['T'];
if (strcasecmp('pm', $middletime)===0)
{
if ($hour < 12)
$hour += 12;
}
else
{
if ($hour == 12)
$hour = 0;
}
}
$min = intval($ar["MI"]);
$sec = intval($ar["SS"]);
if(!checkdate($month, $day, $year))
return false;
if($hour>24 || $hour<0 || $min<0 || $min>59 || $sec<0 || $sec>59)
return false;
$ts = mktime($hour, $min, $sec, $month, $day, $year);
if($ts === false || ($ts == -1 && version_compare(phpversion(), '5.1.0') < 0))
return false;
return $ts;
}