Autor Zpráva
Rob
Profil
Potřebuji porovnat datum a to tím způsobem, že jeden parametr je načtený z MySQL (vložený funkcí NOW()) a druhý jsem zkusil generovaný v php pomocí fce date() ve stejné podobě jako hází NOW(). Byl to jen pokus a ne moc překvapivě nevyšel. Takže potřebuji načíst datum a čas z MySQL a pak, pokud bude více jak minutu starší, tak něco provést, teď není důležité co. Koukal jsem se do PHP manuálu, ale nic jsem nenašel. S datem jsem ještě nikdy takhle pracovat nepotřeboval, takže fakt netuším.
Casero
Profil
bohužel nepíšu radu, ale spíš před 32 dnama sem sem psal podobnej článek, potřeboval sem totež, ale z odpovědí mi to nebylo něja jasný...tak su zvědavej, snda ted něco bude...
Casero
Profil
2 dny *
Rob
Profil
Je to na http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=25 129
Sice je řečeno proč to nejde, ale není řečeno, jak to vyřešit. Takže jak? Nevíte někdo?
WertriK
Profil *
Teoreticky :

- prepociat roky [2006 - 1970] na sekundy to by nemel byt problem - pozor na prestupne roky
- prepocitat mesice na sekundy - to by taky nemel byt problem - staci zjistit zda je rok v db prestupny a podle toho se zaridit
- prepocistat dny na sekundy
- prepocistat hodiny a minuty na sekundy
- vsechny hodnoty secist
- zjistit aktualni hodnotu [fce time();]
- porovnat aktualni hodnotu z hodnoutou vypocitanou
koudi
Profil
Rob
Pokud chceš jen zjistit, jestli je jedno datum o víc jak minutu starší než druhý, tak je jednoduše odečti (pokud je máš jako timestamp) a jestli je rozdíl více jak 60, tak je to starší než minutu :)

Casero
Tobě to nešlo, protože jsi to dělal kompletně blbě.
Hugo
Profil
Pokud chceš v MySQL převést datum na unixtimestamp, tak použij funkci unix_timestamp, pokud chceš opačný převod, tak funkci from_unixtime.
Casero
Profil
hmm..tak dík...
Rob
Profil
koudi
To jsem dělal, až na ten timestamp. Jsem odečítal data v normální podobě.

Ale jestli byste nemohli trochu konkretněji. Fce time() je OK. Jenom jak dostat timestamp z toho data, které vytahnu z DB. Jsem hledal v manuálu a našel jsem fci variant_date_to_timestamp() ale ta je v PHP5 a to mi je tak nějak k ničemu. Vím, že tohle je normální lama dotaz, ale řetězce a data mi nějak nepřirostli k srdci.
Hugo
Profil
Rob

Jak jsem už psal dřív, použij MySQL funkci unixtimestamp a dostaně datum v tom formátu, který potřebuješ.

SELECT unixtimestamp(`datum`) from ...
J.R. Fish
Profil *
pokud máš MySQL verze 5 a vyšší, tak pro porovnávání časů v timestampu je funkce

TIMESTAMPDIFF(jednotka,čas_1,čas_2)

takže třeba SELECT TIMESTAMPDIFF(SECOND,uzivatele.Vytvoren,CURRENT_TIMESTAMP) FROM uzivatele WHERE ID=5
roberta
Profil
skús sa pohrať s týmto, lebo nejako som možno nepochopil, aké dátumy chceš... predsa je už veľa hodín :)

select * from tabulka where datum > date_add(now(), interval 1 minute)

tento select vyberie tie záznamy, ktoré majú datum väčší ako now + 1 minúta

edit:
už je asi fakt veľa hodín... skoro rok stará otázka, dobrú noc
Joker
Profil
Ještě by taky mohlo jít:
ADDTIME(NOW(), '0:1:0')
resp.:
ADDTIME('$datum','0:1:0')

MySQL 4.1.1 a dál
Toto téma je uzamčeno. Odpověď nelze zaslat.