Autor | Zpráva | ||
---|---|---|---|
lenoch Profil * |
#1 · Zasláno: 1. 5. 2011, 00:49:55
Ahoj. Tahám z databáze spousty hodnot, které porovnávám v php (není to žádné omezení hodnot ani žádná jiná věc která by byla lehčí řešit v databázi třeba jen pomocí where). Hodnoty jsou typu string (ale to jen kvůli mysql driveru v php) - v databázi varchar, int a datetime. Pokud porovnávám datum a čas s datem a časem přesně ve formátu ve kterém je uložen v mysql (2001-12-12 12:12:12 < 2001-12-12 12:12:14), je potřeba z tohoto řetězce vyrobit "datumový typ" nebo to stačí porovnávat jako řetězec (z toho důvodu že je datum ve formátu od nejvyšší hodnoty po nejnižší a proto by teoreticky neměl být problém)?
|
||
Darker Profil |
#2 · Zasláno: 1. 5. 2011, 02:07:46 · Upravil/a: Darker
A jak by sis porovnávání jako řetězec představoval? Pokud bys rozložil datum na jednotlivá čísla (explode) a pak porovnával rok, měsíc, den atd, ano, to by fungovalo.
Nicméně si nemyslím že kód "2001-12-12 12:12:12">"2001-12-12 12:12:14" |
||
petr 6 Profil |
#3 · Zasláno: 1. 5. 2011, 11:17:30
Darker:
„Pokud bys rozložil datum na jednotlivá čísla (explode) a pak porovnával rok, měsíc, den atd, ano, to by fungovalo.“ Jednodušší by bylo odstranit z data všechny nečíselné znaky a pak porovnávat 20011212121212>20011212121214 Toto určitě fungovat bude (za předpokladu, že měsíc, den, hodina, minuta i sekunda budou vždy dvojmístné - 00, 01 apod.) Nebo lépe strtotime("2001-12-12 12:12:12")>strtotime("2001-12-12 12:12:14") |
||
Keeehi Profil |
#4 · Zasláno: 1. 5. 2011, 14:43:30
http://cz.php.net/manual/en/function.strcmp.php a mělo by to být v pohodě
|
||
lenoch Profil * |
#5 · Zasláno: 2. 5. 2011, 01:25:58
Proč by "2001-12-12 12:12:12">"2001-12-12 12:12:14" nemělo dopadnout šťastně? Pokud bych to porovnával jako číslo, tak se bere hodnota, takhle se to jen bude porovnávat znak po znaku a pokud budou řetězce stejně dlouhé, tak to musí projít ne? Nebo je v tom nějaké úskalí?
|
||
Keeehi Profil |
#6 · Zasláno: 2. 5. 2011, 02:04:31
lenoch:
Nejjistější ne to bude použít přímo vytvořenou funkci. Jak to prosté porovnání dvou řetězců funguje si můžete sám vyzkoušet. A pak můžete doufat, že to tak zůstane i v dalších verzích php, případně v jiném kódování. U té funkce je podle mě pravděpodobnost větší, že bude fungovat stejně i nadále. |
||
Časová prodleva: 13 let
|
0