在合同管理工具中,我试图通过PHP查询填充表格。
该功能正常运行,直到我在while中使用它来计算同一while循环中的多个日期为止。
功能代码:
function calculo_data($data_calculo){
if($data_calculo == 0 ){
$result_datas = "NÂO aplicavel ";
echo $result_datas;
} else {
$hoje = date_create();
$data_calculo_date = date_create($data_calculo);
$diff = date_diff( $hoje, $data_calculo_date );
$meses = (($diff->format('%y')*12)+$diff->format('%m'));
$dias = $diff->days;
if($data_calculo_date < $hoje){
$result_datas = "não aplicavel ";
echo $result_datas;
} elseif($meses >=1 ) {
$result_datas = $meses . " meses ";
echo $result_datas;
} else {
$result_datas = $dias . " dias ";
echo $result_datas;
};
;
};
};
表格代码:
while ($row_detalhes = mysqli_fetch_assoc($result_listagem_contratos)){
$listagem_cliente_ref = $row_detalhes['PkContrato'];
$listagem_cliente_cliente = $row_detalhes['ClienteNome'];
$listagem_cliente_inicio = $row_detalhes['ContratoDataInicio'];
$listagem_cliente_fim = $row_detalhes['ContratoDataFim'];
$listagem_cliente_senhorio = $row_detalhes['ContratoPreAvisoSenhorio'];
$listagem_cliente_inquilino = $row_detalhes['ContratoPreAvisoInquilino'];
$listagem_cliente_break = $row_detalhes['ContratoDataBreak'];
echo '<tr>';
echo '<td>' . $listagem_cliente_ref .'</td>';
echo '<td>' . $listagem_cliente_cliente .'</td>';
echo '<td>' . $listagem_cliente_inicio .'</td>';
echo '<td>' . $listagem_cliente_fim .' ( ' . calculo_data($listagem_cliente_fim) . ' )</td>';
echo '<td>' . $listagem_cliente_senhorio .' ( ' .calculo_data($listagem_cliente_senhorio) . ' )</td>';
echo '<td>' . $listagem_cliente_inquilino .' ( ' . calculo_data($listagem_cliente_inquilino) . ' )</td>';
echo '<td>' . $listagem_cliente_break .' ( ' . calculo_data($listagem_cliente_break) . ' )</td>';
echo '<td><a href="detalhe_contrato.php?id='. $listagem_cliente_ref . '">
<span class="glyphicon glyphicon-file" style="color:black"></span>
</a></td<>';
结果是表格,其中至少显示了部分结果,但位置与图片中的位置错误!
答案 0 :(得分:1)
这是因为您直接在函数中回显。它应该返回值,而不回显它们:
function calculo_data($data_calculo){
if($data_calculo == 0 ){
$result_datas = "NÂO aplicavel ";
return $result_datas;
} else {
$hoje = date_create();
$data_calculo_date = date_create($data_calculo);
$diff = date_diff( $hoje, $data_calculo_date );
$meses = (($diff->format('%y')*12)+$diff->format('%m'));
$dias = $diff->days;
if($data_calculo_date < $hoje){
$result_datas = "não aplicavel ";
return $result_datas;
} elseif($meses >=1 ) {
$result_datas = $meses . " meses ";
return $result_datas;
} else {
$result_datas = $dias . " dias ";
return $result_datas;
}
}
}
我也删除了一些;
。