Исходный код
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;
}
Что не так в исходном коде
В любом современном языке присутствует богатая стандартная библиотека классов и/или функций, и такая простая операция, как форматирование даты в ней обязательно имеется.
Не следует реализовывать функциональность, доступную в стандартной библиотеке.
Если брать чисто алгоритм, то тут многократно повторяется реализация форматирования двузначного числа. Также в этом коде смешано два разных знания: как получить текущее время, и как форматировать время в виде строки. В итоге функция форматирует только текущее премя, применить её для форматирования произвольного времени (например, извлечённого из БД) уже не получится.
Теория
- Благословение стандартных библиотек
- Принцип единственной реализации
- Принцип единственного знания