Reputation: 2900
I want to explode a date but want to rename default index 0,1,2 to year, month, day respectively, I tried but I am not able to figure it out. Here's what am doing right now.
$explode_date = explode("-", "2012-09-28");
echo $explode_date[0]; //Output is 2012
echo $explode_date[1]; //Output is 09
echo $explode_date[2]; //Output is 28
what I want
echo $explode_date['year']; //Output is 2012
echo $explode_date['month']; //Output is 09
echo $explode_date['day']; //Output is 28
Thanks..
Upvotes: 1
Views: 2751
Reputation: 4024
You'll have to map out the associations:
$explode_date = explode("-", "2012-09-28");
$new_array['year'] = $explode_date[0];
$new_array['month'] = $explode_date[1];
$new_array['day'] = $explode_date[2];
Or, you can use PHP's built in DateTime class (probably better since what you want to do has already been done):
http://www.php.net/manual/en/book.datetime.php
$date = new DateTime('2012-09-28');
echo $date->format('Y');
echo $date->format('m');
echo $date->format('d');
Upvotes: 0
Reputation: 212452
$explode_date = array();
list($explode_date['year'],$explode_date['month'],$explode_date['day']) = explode("-", "2012-09-28");
var_dump($explode_date);
Upvotes: 0
Reputation: 20753
use array_combine:
$keys = array('year', 'month', 'day');
$values = explode("-", "2012-09-28");
$dates = array_combine($keys, $values);
Upvotes: 6
Reputation: 31760
$explode_date = array (
'year' => $explode_date [0],
'month' => $explode_date [1],
'day' => $explode_date [2]
);
Upvotes: 0
Reputation: 5827
list($year, $month, $day) = explode("-", "2012-09-28");
$x = compact('year', 'month', 'day');
var_dump($x);
array 'year' => string '2012' (length=4) 'month' => string '09' (length=2) 'day' => string '28' (length=2)
Upvotes: 1
Reputation: 522451
list($date['year'], $date['month'], $date['day']) = explode('-', '2012-09-28');
Upvotes: 6