0

I am importing data from and excel sheet and the dates are formatted like so:

May 5, 2014

I need to convert this to a proper PHP date format like:

Y-m-d

This isn't working:

$new_date = date('Y-m-d', strtotime('May 5, 2014'));
echo $new_date;

Results 1969-12-31

I was thinking that i could do something like this:

$old_date = 'May 5, 2014';
$old_date = str_replace(',', '', $old_date);
$old_date_parts = explode(' ',$old_date);

// Convert month name to number
$may = '5';

// Build new date
$new_date = $old_date_parts[2].'-'.$may.'-'.$old_date_parts[1];

But there HAS to be another way!

Please help. Thank you in advance.

EDIT

Seems that the PHPExcel that i am using doesn't have the function to convert a serial date to a unix time so i used this.

UNIX_DATE = (EXCEL_DATE - 25569) * 86400
JD Vangsness
  • 697
  • 3
  • 10
  • 27

1 Answers1

2
$date = date_create_from_format('M j, Y', 'May 5, 2014');
echo date_format($date, 'Y-m-d');

Or OOP Style

$date = DateTime::createFromFormat('M j, Y', 'May 5, 2014');
echo  $date->format('Y-m-d');
Hanky Panky
  • 46,730
  • 8
  • 72
  • 95