Portál AbcLinuxu, 26. listopadu 2025 09:02
Poradí někdo? Ihmo: co použít při vkládání nového údaje pro ten sloupec datetime? NOW() ? Díky
Now().
Možná by tě zajímal rozdíl:
SELECT NOW(), SLEEP(3), NOW();vs.
SELECT SYSDATE(), SLEEP(3), SYSDATE();
ale píše to, že neexistuje funkce NOW();
$sql = "INSERT INTO t (a, b, c, d) VALUES (:a, :b, :c, :d)";
$query = $this->db->prepare($sql);
$parameters = array(':a' => $a, ':b' => $b, ':c' => $c, ':d' => NOW());
$sql = "INSERT INTO t (a, b, c, d) VALUES (:a, :b, :c, NOW())";?
BTW: Když budu mít v POSTu formát '19.11 2014 10:10:10' jak to můžu updatovat do mysql, nemyslím sql dotaz ale jen ten datum, jde nějak použít třeba
$var = date('19.11 2014 10:10:10'); ? Díky
Jenda ti už něco níže písnul, osobně reálná čísla měnu a datum/čas jsem vždy táhal přes nějaký vlastní třídu, (která obalila třeba i některé PHP-kové). Dříve jsem to měl součástí db-providera, kde existovali tři get/set klient/PHP/DB.
V jednoduchém případě jedu vždy přes ISO 8601 'YYYY-MM-DDThh:mm:ss' s tím, že někdy z různých důvodů vynechávám to 'T'.
a pokud to lze, razím tezi, že i uživatel by si měl zvyknout na YYYY-MM-DD hh:mm:ss, protože tak se nezaměnitelně domluvém všichni,
no a když to nelze, tak se holt musí šupačit tam a zpět, ale dělám to v aplikační vrstvě, ne v DB (i když ji případně využiji na ověření kdovíčeho).
echo strftime(_('%d. %m. %Y %H:%M'), strtotime($iso_string));
Pokud zadá uživatel datum do formuláře, nabízí se dvě možnosti: Buď ho dostaneš v ISO formátu (JS selector nebo HTML5 input typu datetime), nebo ho dostaneš v lokalizovaném tvaru. V prvním případě ho rovnou pošli do databáze, v tom druhém máš dvě možnosti: Spolehnout se na strtotime() nebo vzít formátovací řetězec a použít strptime(). Obvykle je strtotime() dostatečně schopné. Jakmile máš timestamp, je snadné ho dostat do MySQL:
$flupdo->where('timestamp_sloupec = ?',
strftime('%Y-%m-%d %H:%M:%S', strtotime($_POST['timestamp_policko'])));
Ještě lepší je, když strtotime() a strftime() jsou součástí validace a formátování formuláře, takže z něj vždy leze validní ISO 8601 string. A v logice aplikace pak už s časem nijak nemanipuluješ a předáš ho databázi tak, jak je.
Někdy je potřeba rychle naformátovat nějaký řetězec do jiné podoby. Můžeme mí datum ve formátu Wed, 12 Dec 2007 08:00:00 GMT. Přeformátování provedeme následujícím skriptem:
$date = "Wed, 12 Dec 2007 08:00:00 GMT";
$date = strtotime($date);
$date = StrFTime("%d.%c.%Y %H:%M:%S", $date);
//12.12.2007 08:00:00
Zdroj jsem našel zde, tak třeba se to někomu hodí
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.