Formát výpisu datumu po načtení z DB

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kejlicz
Člen | 201
+
0
-

Ahoj všichni.

Mám v DB uložené datum ve sloupečku s formátem date, např. „2015–02–16“. Pokud ho ale přes NTDB načtu a chci s ním pracovat v podmínkách, záznam je ve formátu „2015–02–16 00:00:00“.

Je to normální? Když je to v DB jako date, tak proč to tam dává ten čas. Já potom musím dělat něco takového

$date = new \Datetime($result->date);
echo $date->format("Y-m-d");

abych mohl data použít např. při porovnání v podmínce.

Jde toto chování vypnout, aby to vracelo bez toho času?

Díky

Martin Kejzlar

Editoval kejlicz (16. 2. 2015 0:25)

pavelmlejnek
Člen | 16
+
+1
-

Odpověď na to, zda je to normální je zde: https://github.com/…esultSet.php#L172

A bohužel si myslím že se to nijak obejít nedá.

h4kuna
Backer | 740
+
+3
-

Jde to obejít obal sloupeček pomocí CONCAT() :) tím to přetypuješ na string a nette ti z toho neudělá Datetime. Ikdyž nevím jestli je to potřeba Datetime umí spousty operací a taky právě ve formátování výstupu máš volnost. Pokud potřebuješ něco porovnávat tak jetli se nevyplatí z toho druhého zdroje udělat objekt Datetime?

EDIT
Ono jde porovnávat objekty

<?php
echo new Datetime('2015-02-14') < new Datetime('2015-02-15') // true
?>

Editoval h4kuna (16. 2. 2015 8:22)

pavelmlejnek
Člen | 16
+
0
-

Pravda, to s tím CONCAT() mně vůbec nenapadlo :)

kejlicz
Člen | 201
+
0
-

Díky za užitečné rady.