The input string contains time zone information (+07: 00). The DateTime class ensures that you work with this time zone regardless of the locale settings of the server.
$string = '2019-10-07T01:00:00+07:00';
$dt = date_create($string);
var_dump($dt);
//object(DateTime)#1 (3) { ["date"]=> string(26) "2019-10-07 01:00:00.000000" ["timezone_type"]=> int(1) ["timezone"]=> string(6) "+07:00" }
echo $dt->format('Y-m-d');
//2019-10-07
date() uses the local time zone of the server. If this does not match the timezone of the input string, then the result will be wrong:
setlocale(LC_ALL, 'nl_NL');
$string = '2019-10-07T01:00:00+07:00';
echo date("Y-m-d H:i:s",strtotime($string));
Output
2019-10-06 20:00:00