You can use the strtotime () php function to convert a string to time. When converting easy stuff like ’05/29/2019′, or ‘2019-05-29’, things are easy and predictable:

$string ="05/29/2019";
print $string ." => ". date('Y-m-d',strtotime($string));
$string ="2029-05-29";
print $string ." => ". date('Y-m-d',strtotime($string));
$string ="29.05.2019";
print $string ." => ". date('Y-m-d',strtotime($string))";

All of above will output: 2019-05-29

Which also works fine when using strings with times:

$string ="05/29/2019 16:05:01";
print $string ." => ". date('Y-m-d H:i:s',strtotime($string));
$string ="20190529T160501";
print $string ." => ". date('Y-m-d H:i:s',strtotime($string));

All of above will output: 2019-05-29 16:05:01 

When converting times you’ll need to be aware that timestamps such as ‘20190529T160501Z’ define time in UTC and their conversion will happen according to the default_timezone of your php. So…

$string ="20190529T160000Z";
print $string ." => ". date('Y-m-d H:i:s T',strtotime($string)); 
print "!!! Time conversion based on the current php time zone: ".date_default_timezone_get()." !!!";

This will output time according to the current timezone. My output would be:

2019-05-29 17:00:00 BST !!! Time zone conversion based on the current time zone php setting: Europe/London !!!

If you need to convert time in a specific timezone you need to set the default_timezone first…

$string ="20190529T160000Z";
date_default_timezone_set('America/Chicago');
print $string ." => ". date('Y-m-d H:i:s T',strtotime($string));
print "!!! Time conversion based on the current php time zone: ".date_default_timezone_get()." !!!";

Which outputs now:

2019-05-29 11:00:00 CDT !!! Time zone conversion based on the current time zone php setting: America/Chicago !!!

To convert any time to a specific time zone, need to use the “UTC” parameter:

$string ="05/29/2019 16:05:01";
date_default_timezone_set('America/Chicago');
print $string ." => ". date('Y-m-d H:i:s T',strtotime($string." UTC"))

Remember: Once you’ve used strtotime for a UTC timestamp you don’t need to do yet another conversion. Just make sure you have the correct timezone set before calling strtotime

Please follow and like the content: