PHP-ban hogyan lehet keresni különböző dátum formátumok között?
Adott egy asszociatív tömb (ami lehet, szebb lenne, ha nem lenne asszociativ), pl. [ido] => 2020-10-04 15:30 ..., [ido] => 2020-10-05 15:20 ... Van egy dátumom, ami alapján a tömbben szeretnék keresni, viszont ebben nincs feltüntetve az idő (nem timestamp, pl. 2020-10-05). Azt szeretném elérni, hogy valamilyen módon azonosítsam a keresett elemet - feltéve, hogy benne van a tömbben (kiírni, majd törölni a tömbből). Több megoldást is próbáltam, mint például az array_search függvényt, viszont FALSE-t dob, mivel nem tartja azonosnak a két különböző dátumot.
Tudom, hogy a tömb nem épp a legszebb, ezt egy mysql adatbázisból kérdezem le, ahol az [ido] az attribútum/mező.
#5-ös vagyok.
Ok. Kb értem mit akarsz, de ebben az esetben viszont már megkaptad a választ többször is (sőt, van aki levan pontozva, pedig az is tökéletes, csak... "RTFM" és rájönnél hogy a #3-as és #4-es is tök jó ha kiegészíted egy sorral.).
De akkor összefoglalom:
Bár nem derül ki, hogy ez valami natív php-s cucc, vagy használsz-e framework-öt (bármilyen) és ORM-ről kéne esetleg beszélgetnünk ezért mindkét megközelítést leírom.
Ha a lekérést kézzel és/vagy valami query builder-el (frémvörkből:)) rakod össze, akkor kibővítheted egy plusz oszloppal ami csak dátumot ad vissza. (Emellett megkapod az eredeti időt is) Ezt írta le a #10-es. Senki sem mondta, hogy az idő részt ne add át. Egy oszlopot többször lekérhetsz egy select-ben különböző formátumban csak nevezd el másképp.
Aztán nézzük a #3/#4 javaslatokat. Én mondjuk az OOP-s verziót preferálom, de lényegében ugyanez. Tehát fogod a timestamp-et és DateTime objektummá alakítod, majd a format-al lecsíped belőle az időt. Szóval "RTFM": [link]
Tehát valahogy így:
$dt = new DateTime('2012-07-24 11:52:01');
$justDate = $dt->format('Y-m-d');
És meg tudod nézni, hogy egyenlő-e a te dátumoddal.
Végül pedig nézzük meg az ORM-es verziót. A legtöbb keretrendszer esetén (legalábbis amiket én használok ott ezt így lehet/kell megoldani) a model-be simán beleírhatod ezt, sőt van ahol már eleve DateTime objektumot kapsz a db-ből. Szóval a lényeg, hogy az adott modelben létrehozol egy függvényt, aminek nincs bemeneti értéke, mert az adott példány ($this->ido) változójának értékéből a fenti példa alapján visszaadja a dátumot és elnevezed mondjuk "getDateFromTimestamp"-nek így ha ezt hívod meg akkor nem timestamp hanem konkrét dátumot fogsz csak kapni.
Szóval a problémádnak 1000 féle megközelítése és megoldása létezik, persze ennyi információból nem tudunk többet csak azt, hogy a fentiek közül mindegyik jó lehet és működni fog.
További kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!