Sfisioza
Sfisioza

Reputation: 3930

Function to parse date to parts

Is there any nice function in PHP to parse the date into parts given the specified format?

e.g.

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) expected in all of the above cases,
(assuming formats compatible with date() function)

Update:

I use PHP 5.1.9
This is also possible using Zend_Date, but it uses different formats than date() (e.g. ddMMyyyy)

Upvotes: 0

Views: 293

Answers (3)

Wrikken
Wrikken

Reputation: 70460

For PHP < 5.3, look at the more strptime. It uses strftime format, but is sort of what you are looking for.

Upvotes: 0

palmic
palmic

Reputation: 1856

Write your own:

function ($date, $format = array('d', 'm', 'Y')) {
    $ts = strtotime($date);
    $out = array();
    foreach ($format as $v) {
        $out[$v] = date($v, $ts);
    }
    return $out;
}

Upvotes: 0

Pascal MARTIN
Pascal MARTIN

Reputation: 400972

With PHP >= 5.3, the DateTime::createFromFormat() allows one to parse a date according to a specified format.

After that, you get a DateTime object, and up to your to work with it in order to get the array you want.

Upvotes: 2

Related Questions