Kuinka saisin funktion joka muuttaa "suomalaisittain" syötetyn päivämäärän(pp.kk.vvvv) muutettua mysql date muotoon (vvvv-pp-kk). Ja tietenkin kaikki tämä myös toisinpäin.
Kiitos!
Onnistuu ainakin Oraclessa SQL:n funkkareilla. Jos finnish_date on merkkijono niin talletus vaikka näin
insert into date_tbl values (to_date(finnish_date, 'dd.mm.yyyy'));
ja luku
select to_char(db_date, 'dd.mm.yyyy')
into finnish_date from date_tbl;
Taulussa siis vain yksi sarake. Eiköhän vastaavat funktiot ole myös MySql:ssäkin.
Tai ota mallia tuolta --> http://www.sivut.org/php/vinkit/
tai vielä helpommin date-strtotime (PHP) tai MySQL:n STR_TO_DATE (DATE_FORMAT käänteisfunktio):
INSERT INTO FOO SET aika = STR_TO_DATE('%d.%c.%Y', '22.2.2002')
Missä on vika, kun yritän suorittaa tuota:
<?php
$aika = "22.2.2002";
$dt_aika = date("Y-m-d", strtotime($aika));
?>
Niin antaa varoituksen:
Warning: unexpected error in date() in ... line3
Itselläni ei tullut mitään virheilmoitusta, mutta eipä kyllä ollut lopputuloskaan oikea. Niin hassulta kun se tuntuukin, tuo aikamuoto ei liene oikein. Seuraavassa hieman noista oikeista muodoista: http://www.gnu.org/software/tar/manual/
Mutta onnistuuhan tuo ihan merkkijono- ja taulukkofunktioillakin:
<?php $aika = "22.2.2002"; $dt_aika = implode("-", array_reverse(explode(".", $aika))); ?>
Olga kirjoitti:
<?php $dt_aika = implode("-", array_reverse(explode(".", $aika))); ?>
Mikä mahtaa olla tuon "vastakkais"-toimenpide, eli millä saa muutettua date "suomalaiseksi".
Näin äkkiä hatusta heitettynä:
<?php $aika = "2002-2-22"; $muutettu = implode(".", array_reverse(explode("-", $aika))); ?>
Aihe on jo aika vanha, joten et voi enää vastata siihen.