Nyt olisi sellaista ongelmaa tarjolla, että minulla mysql kannassa tavaraa päivämäärittäin ja päivät ovat muotoa 2007-08-16
ja se pitäisi saada tulostettua muotoon 16.08.2007
Tulostus pitäisi tehdä vasta pvm. vertailun jlk. eikä mysql kyselyssä :)
Kiitti etukäteen jo vaivannäöstä!
ja se pitäisi saada tulostettua muotoon 16.08.2007
Tulostus pitäisi tehdä vasta pvm. vertailun jlk. eikä mysql kyselyssä :)
Kiitti etukäteen jo vaivannäöstä!
Vastaukset 5
Vanhimmat
strtotime osaa tuon homman.
Eka haet sieltä kannasta sen vvvv.kk.pp johonkin muuttujaan ($date) ja sitten
$otherdate = date('d F Y',strtotime($date));
suoraan mysql-haussa voit muutta sen myös
select date_format(now(), '%d/%M/%Y')
DATETIME-muotoisen kentän saa unixin timestampiksi suoraan haussa
select UNIX_TIMESTAMP('aika') as timestamp from taulu;
ja toiseen suuntaan FROM_UNIXTIME()-komennolla
Kiitosta vaan!
Pitääpä strtotime:ä kokeilla.
mysql-haussa osasinkin jo, mutta se ei nyt vastannut tarkoitusta.
"mysql-haussa osasinkin jo, mutta se ei nyt vastannut tarkoitusta."
Perusteleppas miksi ei?
Päivämäärä muotoilu lähes aina on suotavaa tehdä juurikin tietokannan puolella. PHP:n puolella ei ole mitään järkeä muotoilla sitä.
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format
SELECT DATE_FORMAT(aika, '%W %M %Y') AS muotoiltu_paivays ORDER BY aika näin järjestyskin pysyy kunnos.
Tää on nyt taas tätä "miksi teet näin, etkä näin, kun näin se 'kuuluisi' tehdä" keskustelua, jonka takia näitä ohjelmointi foorumeita ei tahdo viitsiä lukea, kun aina joku 'viisastelee'.
Minusta oli vaan helpompi tehdä päivämäärässä olevan päivämäärän vertailu, kun se oli alkuperäisessä muodossaan. Siis mikäli joku asia on tapahunut ennen tätä päivää, jälkeen jonkun päivän, jonain päivänä jne. Lisäksi kun on jo paljon, jo toimivaa juttua tehtyä, mutta tarvin tulostuksen pariin paikkaan, niin pääsen helpommalla, kun teen pienen korjauksen, enkä koko pask** ala uudelleen väsäämään.
UGH!
"Tää on nyt taas tätä "miksi teet näin, etkä näin, kun näin se 'kuuluisi' tehdä" keskustelua, jonka takia näitä ohjelmointi foorumeita ei tahdo viitsiä lukea, kun aina joku 'viisastelee'."
Täh?
En minä viisastellut, kysyin vain asiallisesti perusteluita miksi haluat tehdä sen juurikin PHP:n puolella, etkä tietokannan. Tosiasia on kuitenkin se että yleensä päivämäärän muotoilu on järkevintä tehdä juurikin tietokannan puolella. Antees jos sait viestistäni tuommosen kuvan.
"Minusta oli vaan helpompi tehdä päivämäärässä olevan päivämäärän vertailu, kun se oli alkuperäisessä muodossaan. Siis mikäli joku asia on tapahunut ennen tätä päivää..."
Itselläni on samanlainen juttu, jossa tänään lähetetyt viestit korostetaan eri värillä. Päivämäärän muotoilun teen tietokannan puolella, ja ehtolauseilla http://dev.mysql.com/doc/refman/5.0/en/flow-control-constructs.html katson onko tänään, jos on niin true muutoin false. Tällöin PHP:n puolella ei tartte mitään turhia vertailuja ja päivämäärän muunnoksia suorittaa.
Ja sopii kysyä miksi sinulla on edes päivämäärät DATE tyyppisessä sarakkeessa, jos kerran haluat päivämäärät muotoilla PHP:n puolella?
Ennemmin INT tyyppiseen Unixin timestampi, jolloin sitä ei erikseen tartte muuttaa Unixin timestampiksi.
"niin pääsen helpommalla, kun teen pienen korjauksen, enkä koko pask** ala uudelleen väsäämään."
Niimpä, ehkä pääsee helpommalla jos tekee vain pienen korjauksen, mutta aikaa myöten noita pieniä korjauksia tulee paljon jolloin lopulta on sekanen koodi kyseessä.