Ошибка "Неустранимая ошибка: Невозможно переопределить (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

 1
php
Author: Comunidade, 2017-05-18

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");
 4
Author: Diego Schmidt, 2017-05-18 21:19:16

Ошибка:

Фатальная ошибка: Невозможно переопределить 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, если это не проблема то ознакомьтесь с твоих сценариев должно быть на самом деле две функции с тем же именем.

О "гуманизации часов", я рекомендую вам попробовать все решения, представленные в разделе:

 6
Author: Guilherme Nascimento, 2017-05-18 14:37:16