DateTime při nulové hodnotě
- Allconius
- Člen | 267
David Matějka napsal(a):
Do databáze neukladej 0000–00–00, ale null
Ahoj, díky a jak si pak mám jednoduše ošetřit to tahání z DB ?
Když tam nechám to:
$arrival = $row->arrival->format('m/d/Y');
tak mi to vyhodí „Call to a member function format() on null“
Ošetřil jsem to takto:
$arr = (array)$row->arrival;
if (!$arr) {
$arrival = '';
}else{
$arrival = $row->arrival->format('m/d/Y');
}
Je to takto OK ?
A ještě dotaz, proč mi nefunguje:
echo $row->arrival->date;
píše to „Cannot read an undeclared property Nette\Utils\DateTime::$date.“. Myslel jsem že $row->arrival je třída (objekt) DateTime:
Nette\Utils\DateTime Object ( [date] => 2022-07-18 00:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Prague )
Editoval Allconius (12. 1. 2022 6:59)
- David Grudl
- Nette Core | 7943
Dibi ty 0000–00–00
převádí na null, Nette Database je
předává do DateTime
a PHP z toho udělá 30.11.-1. Asi by bylo
lepší do NDB portovat chování z Dibi… Ale samozřejmě ideální je tyhle
hodnoty v DB nemít.