päiväys/kello-ongelma PHP:n kanssa

Discussion in 'Vapaata keskustelua' started by mika, Mar 6, 2008.

  1. mika

    mika Moderator Staff Member

    Joined:
    Mar 26, 2003
    Messages:
    5,157
    Likes Received:
    0
    Trophy Points:
    116
    Löytyskö tältä foralta php-osaajia :)

    Mulla on tehtynä php-sivu, jossa ylläpitäjä voi käsitellä uutisia (muokkaa/poistaa/lisää). Kenttinä otsikko ja uutinen. Nyt kun lähetä-nappia painaa, niin se lisää hienosti uutisen, mutta päiväys tulee aina muotoa 01.01.70 ja kellonaika 02:00:00

    1) Miten tuon saisi muotoon esim. 06.03.2008 ja kello 21:11? Eli tulisi ihan muuttumaton time stamp.
    2) Ja miten se tulisi käyttäjälle näytettävään uutissivuun(php) muotoon esim. Kirjoitettu: 06.06.2008, klo 21:11? Eli muuttumattomana se aika, jolloin uutinen on lähetetty.

    Mysql on tietokantana ja siellä on taulussa aika-kenttä ja tyyppi on time. Tähän aika-kenttään kyllä rekisteröityy NULL-arvo, joka kerta kun uutisen lisää. Jos tänne pitäisi sen hetkinen päiväys tallentua, niin miten? Ja pitäisikö myös päivämäärä kenttä lisätä, esim. pvm, mutta mikä tyyppi?

    Ei kai tuohon ylläpitäjän sivustoon tarvi lisätä otsikko- ja uutinen-kenttien lisäksi pvm-tekstikenttä, johon lisääjä aina kirjoittaa päivämäärän? Ei kovin käytännölliseltä kuulostaisi..
     
    Last edited: Mar 6, 2008
  2. Ysf

    Ysf Active member

    Joined:
    Oct 2, 2005
    Messages:
    1,954
    Likes Received:
    1
    Trophy Points:
    68
    Code:
    $kelloNyt=date("H:i"); //kellonaika esim. 23:12
    $paivaNyt=date("d.m.y"); //päivä muotoa 12.2.2008
    
    Jos tuolla tulee väärä aika, niin sitten pitäisi kai käyttiksen "aika" tarkastaa (ja korjata), sillä sieltä tuo php sen kai ottaa.

    ei tarvitse. Voi kokeilla vaikka laittaa kentän MySQLssä kentän tyypiksi DATETIME ja pituudeksi 12, silloin aika tallentuu muodossa YYYYMMDDHHMM jos mysql:si on 4.1 tai vanhempi. En ihan varmasti muista, miten tuo muoto on MYSQL 4.1.1:ssä tai uudemmassa, mutta senhän voi kokeilla :)

    Sitten kun sql-lauseella teet vientiä niin tee INSERT INTO taulu (kentta) VALUES (NOW()) ja sinne tallentuu senhetkinen päiväys ja aika.

    Kun noita aikoja sitten tietokannasta haet, se pitää vääntää sopivaan muotoon.. esimerkissä rakennetaan päivämäärä MYSQL-kantaan syötetystä muodosta 'YYYYMMDDHHMM'

    Code:
    //päivä muotoon pp.kk.vvvv
    $paiva=substr($row["kentta"],7,2).".".substr($row["kentta"],5,2).".".substr($row["kentta"],0,4);
    
    //aika muotoon tt:mm
    $aika=substr($row["kentta"],9,2).":".substr($row["kentta"],11,2);
    
    tosin.. mikäpä estää käyttämästä PHP:n avulla saatuja päivämääriä. teet mysql:n kentän vaikka muotoon VARCHAR(15) ja tarjoilee phpllä saadun päivämäärän siihen kenttään. esim. näin..

    Code:
    mysql_query("INSERT INTO taulu (kentta) VALUES ('".date("d.m.y H:i")."')",$dbconn);
     
    Last edited: Mar 8, 2008
  3. mika

    mika Moderator Staff Member

    Joined:
    Mar 26, 2003
    Messages:
    5,157
    Likes Received:
    0
    Trophy Points:
    116
    Kiitos tästä, Ysf :)
    ..kokeillaan illemmalla, kun olo vähän kohenee.
     

Share This Page