php - Codeigniter :比较两个日期并将其显示在带有列表的表格上
问题描述
我想比较两个日期并将它们显示在我的文章前面
差异日期示例。ArtOne(+2 小时)| 2019 年 10 月 10 日 | 某物
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 = 02/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
}
?>
并提前感谢
解决方案
例如,你想比较两者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
}
?>
推荐阅读
- c++ - 错误 C2059:语法错误:结构成员声明中的“常量”
- javascript - 在 response.data [NodeJS, Axios, VueJS] 中获取 HTML 而不是 JSON
- python - 我的飓风追踪器代码不起作用
- postgresql - 更改 Postgres 域的检查约束
- node.js - 来自 React 的 HTTP 请求未到达生产服务器上的 Express 后端
- c++ - 尝试在 C++ 中制作动画加载圈
- python - 长度不匹配
- c++ - C ++堆指向对象的指针数组,如何将字符串传递给特定对象?有一些代码请看一下:
- r - R Caret 计算测试集的 RMSE
- android - 从 Android 中的 JSON 响应访问嵌套对象