Codeigniter: сравните две даты и покажите их на таблице с перечнем - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу сравнить две даты и показать их перед моей статьей

пример разницы дат. ArtOne (+ 2 часа) |10.10.2009 |что-то

SQl

CREATE TABLE `mytable` (
  `id` int(11) NOT NULL,
  `PERSONNE_A_LIVRER` text NOT NULL,
  `ETAT` text NOT NULL,
  `DATE_TRANSPORT` text NOT NULL,
  `DATE_LIVRER` text NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

DATE_TRANSPORT = 01/10/2019 11:38 DATE_LIVRER = 10/10/2019 11:38 ...

Все, что я хочузнать разницу в часах в столбце. вот моя модель,

    public function select_all() {
        $sql = "SELECT * FROM mytable";

        $data = $this->db->query($sql);

        return $data->result();
    }

код моего контроллера

    public function listart() {
        $data['dataPegawai'] = $this->M_pegawai->select_all();
        $this->load->view('pegawai/list_data', $data);
    }

    function differenceInHours($startdate,$enddate) {
        $starttimestamp = strtotime($startdate);
        $endtimestamp = strtotime($enddate);
        $difference = abs($endtimestamp - $starttimestamp)/3600;
        return $difference;
    }

код моего просмотра html и php

<?php
  foreach ($dataPegawai as $albat) {
    ?>
  <tr>
    <td style="min-width:90px;">
      <?php echo $albat->PERSONNE_A_LIVRER ; ?>
    </td>
    <td>
      <?php echo $albat->N_LIVRAISON;?>
    </td>
    <td>
      <?php echo $hours_difference = differenceInHours($albat->DATE_EXP,$albat->DATE_TRANSPORT);?>
    </td>
    <td>
      <?php echo $albat->DESTINATAIRE;?>
    </td>
    <td>
      <?php echo $albat->DIRECTION_A_LIVRER ;?>
    </td>
    <td>
      <?php echo $albat->DESCRIPCION_ETAT;?>
    </td>
    <td class="text-center" style="min-width:90px;">

      <button class="btn default konfirmasiHapus-articulo"> List it </button>
    </td>
  </tr>
  <?php
  }
?>

и заранее спасибо

Ответы [ 2 ]

0 голосов
/ 11 ноября 2019

Теперь я попробовал это, и это не работает, он показывает мне сообщение об ошибке следующим образом:

Обнаружена ошибка PHP. Серьезность: Уведомление

Сообщение: не определенопеременная: hourDifference

Мой контроллер я отредактировал

public function tampil() {
    $data['dataPegawai'] = $this->M_pegawai->select_all();
    foreach ($$data['dataPegawai'] as $item => $value) {
        $D1 = $value->OBSERVATION;
        $D2 = $value->DATE_TRANSPORT;
        $data['dataPegawai']->$key->$hourDifference = $this->differenceInHours($startdate, $enddate);
    }
    $this->load->view('pegawai/list_data', $data);
}

и затем вызвал их на мой взгляд следующим образом:

<?php
  foreach ($dataPegawai as $albatr) {
    ?>
    <tr>
          <td><?php echo $albatr->$hourDifference;?> </td><!-- -->
      <td class="text-center" style="min-width:230px;">
          <i class="glyphicon glyphicon-check-sign"></i> Check </button>
      </td>
    </tr>
    <?php
  }
?> 

Любая помощь!

0 голосов
/ 11 ноября 2019

Например, вы хотите сравнить значения DATE_EXP и DATE_TRANSPORT, вместо этого вы можете вызвать функцию differenceInHours() на контроллере, а не в представлении, поскольку рекомендуется сохранять представление только для представления.

Измените контроллер следующим образом:

    public function listart() {
        $data['dataPegawai'] = $this->M_pegawai->select_all();
        foreach ($data['dataPegawai'] as $key => $value) {
            $startdate = $value->DATE_EXP;
            $enddate = $value->DATE_TRANSPORT;
            $data['dataPegawai']->$key->hourDifference = $this->differenceInHours($startdate, $enddate);
        }
        $this->load->view('pegawai/list_data', $data);
    }

    function differenceInHours($startdate,$enddate) {
        $starttimestamp = strtotime($startdate);
        $endtimestamp = strtotime($enddate);
        $difference = abs($endtimestamp - $starttimestamp)/3600;
        return $difference;
    }

И такой вид:

<?php
  foreach ($dataPegawai as $albat) {
    ?>
  <tr>
    <td style="min-width:90px;">
      <?php echo $albat->PERSONNE_A_LIVRER ; ?>
    </td>
    <td>
      <?php echo $albat->N_LIVRAISON;?>
    </td>
    <td>
      <?php echo $albat->hourDifference;?>
    </td>
    <td>
      <?php echo $albat->DESTINATAIRE;?>
    </td>
    <td>
      <?php echo $albat->DIRECTION_A_LIVRER ;?>
    </td>
    <td>
      <?php echo $albat->DESCRIPCION_ETAT;?>
    </td>
    <td class="text-center" style="min-width:90px;">

      <button class="btn default konfirmasiHapus-articulo"> List it </button>
    </td>
  </tr>
  <?php
  }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...