ohjeita web-sivuston tekijälle
Lyhyesti: Eikö 25.6.2002 olekin helpompi lukea kuin 2002-06-25?
Tietokoneen tapa käsitellä päivämääriä eroaa merkittävästi ihmisen tavasta. Päivämäärät tallennetaan usein muotoon, jossa vuosi, kuukausi ja päivä on erotettu poikkiviivalla (esim. 2002-06-25). Merkintätapa on tehokas kun päivämäärät täytyy saada järjestykseen, mutta todettakoon, että esimerkiksi 25.6.2002 tai 25. kesäkuuta 2002 on ihmisille huomattavasti helpompaa ymmärrettävää. Poikkiviivoja käyttää päivämääräkentissään muunmuassa PHP:n kanssa paljon käytetty tietokantaohjelmisto MySQL.
Muuttaaksemme päivämäärän muotoa, täytyy vuodesta, kuukaudesta ja päivästä koostuva merkkijono hajottaa. Laitamme vuoden, kuukauden ja päivän jokaisen eri muuttujaan.
Käytämme PHP:n ereg-aliohjelmaa. Sen tehtävänä on löytää tietty merkkijono käyttäen säännöllisiä ilmauksia (regular expressions). Säännölliset ilmaukset ovat merkkijonoja, joissa on erikoismerkkejä, jotka esimerkiksi tässä tapauksessa vastaavat mitä tahansa numeroa.
function pvm($paivamaara) {
ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})", $paivamaara, $regs);
return "$regs[3].$regs[2].$regs[1]";
}
Ereg-funktio ottaa syötteekseen $paivamaara-muuttujan ja yrittää löytää siitä merkkijonon, joka koostuu neljästä numerosta, poikkiviivasta, kahdesta numerosta, poikkiviivasta ja kahdesta numerosta.
Puretaan käytetty säännöllinen ilmaisu osiin:
| Ilmaisu | Tarkoitus |
|---|---|
| ([0-9]{4}) | 4 numeroa väliltä 0-9 |
| - | poikkiviiva |
| ([0-9]{2}) | 2 numeroa väliltä 0-9 |
| - | poikkiviiva |
| ([0-9]{2}) | 2 numeroa väliltä 0-9 |
Mikäli ereg-funktio löytää kyseisen merkkijonon syötteestä, se tallentaa suluissa olevat ilmaisut omiksi muuttujikseen taulukkoon $regs. Nyt vuosiluku on muuttujassa $regs[1], kuukausi muuttujassa $regs[2] ja päivä muuttujassa $regs[3].
Sitten palautetaan päivämäärä selkokielisenä. Tässä esimerkissä käytetään muotoa PP.KK.VVVV, mutta järjestystä ja välimerkkejä (pisteitä) muuttamalla voi muotoa toki muuttaa mieleisekseen.
Funktiota voidaan käyttää seuraavasti:
<? $pvm = "2002-06-25"; echo pvm($pvm); ?>
Lopuksi on hyvä mainita, että päivämäärät kannattaa pitää koodissa aina standardissa muodossa, esimerkiksi MySQL:n käyttämässä VVVV-KK-PP .muodossa. Käyttäjille tulisi kuitenkin näyttää selkokielinen vastine.
Tämä sivu on luotu 1.2.2003.
Hyvin tehty opas!! lIsää niitä red.wxwe juttuja!!!
17.5.2004 11:27Tuli tarpeeseen. Paljon kiitoksia..!
19.7.2004 11:05Kivaa oli paljon apua!