Функция strtotime
пытается интерпретировать вашу строку даты.Поскольку «0000-00-00» на самом деле является недопустимой датой (нет 0-го или 0-го дня в любом месяце), оно пытается исправить ее.
Поскольку день 0 на один день меньше первого днямесяца, он перейдет к последнему дню предыдущего месяца.То же самое с месяцем 0, это на один месяц меньше первого месяца, поэтому он станет последним месяцем предыдущего года.
Вот почему «год 0, месяц 0, день 0» становится «год -1, месяц 12»., день 0 ", а затем" год -1, месяц 11, день 30 ".Или в формате «mdY»: "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>";