Велосипед при форматировании даты


Исходный код

function getDateTime(){
    $datetime = getdate();
    $mday = $datetime['mday'];
    if ($mday<10){
        $mday="0$mday";
    }
    $mon = $datetime['mon'];
    if ($mon<10){
        $mon="0$mon";
    }
    $year = $datetime['year'];
    $mhour = $datetime['hours'];
    if ($mhour<10){
        $mhour="0$mhour";
    }
    $mmin = $datetime['minutes'];
    if ($mmin<10){
        $mmin="0$mmin";
    }
    $msec = $datetime['seconds'];
    if ($msec<10){
        $msec="0$msec";
    }

    $dateTime = "$year-$mon-$mday $mhour:$mmin:$msec";
    return $dateTime;
}

Что не так в исходном коде

В любом современном языке присутствует богатая стандартная библиотека классов и/или функций, и такая простая операция, как форматирование даты в ней обязательно имеется.

Не следует реализовывать функциональность, доступную в стандартной библиотеке.

Если брать чисто алгоритм, то тут многократно повторяется реализация форматирования двузначного числа. Также в этом коде смешано два разных знания: как получить текущее время, и как форматировать время в виде строки. В итоге функция форматирует только текущее премя, применить её для форматирования произвольного времени (например, извлечённого из БД) уже не получится.

Теория