如何将PHP页面表格中出生日期格式从YYYY/mm/dd改为dd/mm/YYYY
解决日期格式转换后重复显示的问题
你的问题核心是没有在循环内部为每个员工单独处理日期变量,导致所有行复用了同一个日期值。咱们直接修正循环里的代码逻辑,确保每条员工数据都能正确转换格式:
修正后的完整表格代码
<table id="tabla1" style="border: 1px #000000 solid;" width="100%" cellspacing="2" cellpadding="2" align="center"> <tbody> <tr> <td class="tdcolor" align="left"><b>Data_naixement</b></td> </tr> <?php if($rows){ while($post = mysqli_fetch_assoc($result)) { // 针对当前员工的日期单独做格式转换 $originalDate = $post["Data_Naixement"]; // 明确指定原始日期格式,避免自动解析出错 $dateObj = DateTime::createFromFormat('Y/m/d', $originalDate); $formattedDate = $dateObj->format('d/m/Y'); ?> <tr> <td style="font-family: arial;padding-left: 20px;"><?php echo $formattedDate; ?></td> </tr> <?php } }else{ // 把"not found"也放到表格单元格里,保持布局统一 echo "<tr><td style='font-family: arial;padding-left: 20px;'>not found</td></tr>"; } ?> </tbody> </table>
关键修正说明:
- 把日期转换逻辑放到
while循环内部:每循环一次(处理一位员工),都会重新读取当前员工的原始日期,生成专属的日期对象,不会复用之前的变量值。 - 使用
DateTime::createFromFormat():明确告诉PHP原始日期的格式是Y/m/d,避免PHP自动解析时出现意外错误(比如不同服务器的时间解析规则差异)。 - 修正了表格宽度的小错误:把
width="%100"改成width="100%",确保表格宽度设置生效。
内容的提问来源于stack exchange,提问作者kestrelol
相关产品推荐
相关产品推荐

