Единственное, о чем я могу думать, это date_parse .Регулярное выражение, которое соответствует любому формату, принятому strtotime
, было бы огромным.
Пример date_parse:
$str = "I'll be there for dinner tomorrow at 9:00pm";
$parsed = date_parse($str);
print_r($parsed);
Было бы выведено что-то вроде этого (Iудалил неважные части из него, чтобы сделать его более светлым):
Array
(
[year] =>
[month] =>
[day] =>
[hour] => 21 // 9:00pm
[minute] => 0 // 9:00pm
[second] => 0 // 9:00pm
[fraction] => 0
[warning_count] => 1
[is_localtime] => 1
[zone_type] => 2
[zone] => -540
[is_dst] =>
[tz_abbr] => I
[relative] => Array
(
[year] => 0
[month] => 0
[day] => 1 // tomorrow (would be -1 for yesterday, etc.)
[hour] => 0
[minute] => 0
[second] => 0
)
)
Будет ли это работать для вас, зависит, прежде всего, от того, как выглядит ваш ввод.Если у вас есть более одного экземпляра даты во входной строке, она не будет работать должным образом.