Ошибка "Неустранимая ошибка: Невозможно переопределить (previously declared)" [закрыт]
у Меня есть кнопка уведомлений, где же показывает последние запросы, которые произойдут в системе, хотел добавить, что он уже вышел. Ex.: 4 минут назад, 1 час назад, и когда это выше 24 часов он показывал 1 день назад, 2 дня назад..... Я пробовал несколько способов уменьшить время, но не может. В моей базе данных я сохранил следующие данные:
Data_registro -> день, который был зарегистрирован Ex.: 2017-05-18;
Horario_registro- > время, в которое был зарегистрирован Ex.: 10:19:30
function tempoCorridoDois($dataHoraString2) {
$hoje2 = strtotime(date('Y/m/d H:i:s'));
$dataHora2 = strtotime($dataHoraString2);
$diferenca2 = $hoje2 - $dataHora2;
$segundos2 = $diferenca2;
$minutos2 = round($diferenca2 / 60);
$horas2 = round($diferenca2 / 3600);
$dias2 = round($diferenca2 / 86400);
$semanas2 = round($diferenca2 / 604800);
$meses2 = round($diferenca2 / 2419200);
$anos2 = round($diferenca2 / 29030400);
if ($segundos2 <= 60) {
return "1 minuto atrás.";
}else if ($minutos2 <= 60) {
return $minutos2 . ' minutos atrás.';
}else if ($horas2 <= 24) {
return $horas2 . ' horas atrás.';
}else if ($dias2 <= 7) {
return $dias2 . ' dia(s) atrás.';
}else if ($semanas2 <= 4) {
return $semanas2 . ' semanas atrás.';
}else if ($meses2 <= 12) {
return $meses2 . ' meses atrás.';
}else{
return $anos2 . ' anos atrás.';
}
}
$tempoFinal2 = tempoCorridoDois($dataregistro2.$horarioregistro2);
И отображается следующее сообщение об ошибке:
Неустранимая ошибка: Невозможно переопределить tempoCorridoDois() (previously declared in C:\xampp\htdocs\pedidos\componentes\php\ff_notificacao_php.php:136) в C:\xampp\htdocs\pedidos\componentes\php\ff_notificacao_php.php on line 136
2 answers
Вы можете использовать функция date_diff() или сделать это вручную, равно показываю ниже:
function tempoCorrido($dataHoraString) {
$hoje = time();
$dataHora = strtotime($dataHoraString);
$diferenca = $hoje - $dataHora;
$segundos = $diferenca;
$minutos = round($diferenca / 60);
$horas = round($diferenca / 3600);
$dias = round($diferenca / 86400);
$semanas = round($diferenca / 604800);
$meses = round($diferenca / 2419200);
$anos = round($diferenca / 29030400);
if ($segundos <= 60) {
return $segundos . " segundos atrás";
}
else if ($minutos <= 60) {
return $minutos . 'min atrás';
}
else if ($horas <= 24) {
return $horas . ' hrs atrás';
}
else if ($dias <= 7) {
return $dias . ' dias atrás';
}
else if ($semanas <= 4) {
return $semanas . ' semanas atrás';
}
else if ($meses <= 12) {
return $meses . ' meses atrás';
}
else {
return $anos . ' anos atrás';
}
}
echo tempoCorrido("2017-05-18 10:40:00");
Ошибка:
Фатальная ошибка: Невозможно переопределить tempoCorridoDois() (previously declared in C:\xampp\htdocs\pedidos\componentes\php\ff_notificacao_php.php:136) в C:\xampp\htdocs\pedidos\componentes\php\ff_notificacao_php.php on line 136
Указывает на то, что функция была объявлена в два раза, или вы realmenete заявил в два раза, или вы должны быть с помощью include
(или require
) несколько раз в разных файлах
Чтобы устранить замените require
include
" require_once
, include_once
, если это не проблема то ознакомьтесь с твоих сценариев должно быть на самом деле две функции с тем же именем.
О "гуманизации часов", я рекомендую вам попробовать все решения, представленные в разделе: