$date = date("d.m.Y H:i", $date);
Что вы хотели сделать в этой строке? Второй параметр, который принимает функция date() - метка времени, заданная как целое число секунд с начала эпохи Unix. А вы передаёте строку.
Аналогично и в случаях использования strtotime() вторым параметром должна быть метка времени, а не строка.
$date = '28.10.2020';
$timestamp = strtotime($date);
$shift = '1:10';
$hm = explode(':', $shift);
$timestamp += $hm[0] * 3600 + $hm[1] * 60;
$newDate = date('d.m.Y H:i', $timestamp);
var_dump($newDate);
// string(16) "28.10.2020 01:10"