Функция для разбора даты на части - PullRequest
0 голосов
/ 03 августа 2011

Есть ли в PHP замечательная функция для разбора даты на части в заданном формате?

например.

some_function('20112000', 'dmY') 
some_function('2000-11-20', 'Y-m-d')
some_function('2000 text 11-20', 'Y text m-d')

array('d'=>20, 'm'=>11, 'Y'=>2000) ожидается во всех вышеперечисленных случаях,
(при условии, что форматы совместимы с функцией date())

Обновление:

Я использую PHP 5.1.9
Это также возможно при использовании Zend_Date, но в нем используются форматы, отличные от date() (например, ddMMyyyy)

Ответы [ 3 ]

2 голосов
/ 03 августа 2011

При PHP> = 5.3 DateTime::createFromFormat() позволяет анализировать дату в соответствии с указанным форматом.

После этого вы получаете объект DateTime, и вы можете работать с ним, чтобы получить нужный массив.

0 голосов
/ 03 августа 2011

Для PHP <5.3 посмотрите больше <a href="http://www.php.net/strptime" rel="nofollow">strptime.Он использует формат strftime, но это то, что вы ищете.

0 голосов
/ 03 августа 2011

Напишите свое собственное:

function ($date, $format = array('d', 'm', 'Y')) {
    $ts = strtotime($date);
    $out = array();
    foreach ($format as $v) {
        $out[$v] = date($v, $ts);
    }
    return $out;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...