Найти первую дату в строке

У меня есть PDF-файл, который я проанализировал с помощью плагина «pdfparser». Из текста страниц мне нужно найти первую дату после определенной строки (строка поиска). Я могу найти строку поиска и для извлечения даты я использовал

date_parse($string)

он извлекает дату, месяц в порядке, но я думаю, что из-за большой строки (с некоторыми другими датами, числами) он не заполняет правильный год, он дает случайное число, которого даже нет в документе.

Есть ли другой способ получить эту дату? Ниже приведена примерная строка (в ней больше даты после даты).

Satisfaction of the mortgage from Karen Ann Lewis,a single woman to Bank of America, N.A. recorded March 4, 2004

1

Решение

Вы можете попробовать следующее RegEx (чтобы извлечь первую дату в предоставленном вами формате), а затем использовать parse_date():

$str = 'Satisfaction of the mortgage from Karen Ann Lewis,a single woman to Bank of America, N.A. recorded March 4, 2004';

preg_match("/(Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)\s+\d{1,2},\s+\d{4}/", $str, $matches);

var_dump( date_parse($matches[0]) );

Вышеуказанные выводы:

array(12) {
["year"]     => int(2004)
["month"]    => int(3)
["day"]      => int(4)
["hour"]     => bool(false)
["minute"]   => bool(false)
["second"]   => bool(false)
["fraction"] => bool(false)
...
}

Демо здесь

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]