• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/type/date.php
  • Класс: BitrixMainTypeDate
  • Вызов: Date::parse
protected function parse($format, $time)
{
	$parsedValue = date_parse_from_format($format, $time);

	//Ignore errors when format is longer than date
	//or date string is longer than format
	if ($parsedValue['error_count'] > 1)
	{
		$error = current($parsedValue['errors']);

		if ($error === 'A two digit second could not be found')
		{
			//possibly missed seconds with am/pm format
			$timestamp = strtotime($time);

			if ($timestamp === false)
			{
				return false;
			}

			return [
				"timestamp" => $timestamp,
			];
		}
		if ($error !== 'Trailing data' && $error !== 'Data missing')
		{
			return false;
		}
	}

	if(isset($parsedValue["relative"]["second"]) && $parsedValue["relative"]["second"] <> 0)
	{
		return [
			"timestamp" => $parsedValue["relative"]["second"],
		];
	}

	//normalize values
	if($parsedValue['month'] === false)
	{
		$parsedValue['month'] = 1;
	}
	if($parsedValue['day'] === false)
	{
		$parsedValue['day'] = 1;
	}

	return $parsedValue;
}