Question

I have this date format that looks somewhat like this:

Sun Jun 29 2014 08:00:00 GMT+0800 (Malay Peninsula Standard Time)

This results from the x-editable datepicker when I try to output the value it gets from a validate function.

But, regardless of where I get the date format from, how do I convert this date to yyyy/mm/dd format? It’s not a date object but really just a long string that outputs the above. And I need to be able to convert it to 2014-06-29. Many thanks!

Was it helpful?

Solution

You should use a regular expression to extract the relevant part of your string and then apply PHP date functions to it:

$str = "Sun Jun 29 2014 08:00:00 GMT+0800 (Malay Peninsula Standard Time)";
$pat = "/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat) (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (?:0?[1-9]|[1-2][0-9]|3[0-1]) [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2} GMT\\+[0-9]{4}/";
$date = preg_match($pat, $str, $mat) ? date("Y-m-d", strtotime($mat[0])) : "";

DEMO

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top