在我的数据库中,有一些liveDates是0000-00-00,但当我运行mysqli查询并显示结果时,liveDate显示11-30–0001,
这才开始发生在我……
该 strtotime 函数尝试解释您的日期字符串。由于“0000-00-00”实际上是无效日期(任何月份没有第0个月或第0天),它会尝试纠正它。
strtotime
由于第0天比一个月的第一天少一天,它将跳到上个月的最后一天。与第0个月相同,比第一个月少一个,因此它将成为上一年的最后一个月。
这就是为什么“0年,0月,第0天”变为“年-1,月12,第0天”,然后是“年-1,月11,第30天”。或者,以“m-d-Y”格式: "11-30--0001" 。
"11-30--0001"
的 更新 强>
如果要为这些无效日期保留“00-00-0000”表示法,则不能使用日期格式设置功能。最简单的方法是检查并自己编写:
echo "<tr><td>".$row["id"]."</td> <td>£".$row["amount"]."</td> <td>".date("m-d-Y",strtotime($row["date"]))."</td> <td>".$row["method"]."</td> <td>".$row["status"]."</td> <td>"; if ($row["liveDate"] == "0000-00-00") { echo "00-00-0000"; } else { echo date("m-d-Y",strtotime($row["liveDate"])); } echo "</td> <td><a href='edit-deposit.php?GetID=".$row['id']."'>Edit</a></td></tr>";