Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Päivämäärät PHP+SQL

jarspa [26.03.2007 21:19:38]

#

Miten saan käännettyä php:llä päivämäärän esim. 26.3.2007 muotoon 2007-3-26.

Eli tässä on tarkoitus että käyttäjä syöttää tekstikenttään päivämäärän muodossa 26.3.2007 ja kantaan se tallentuu tietenkin SQL muotoon. Samoiten myös toisin päin eli tulostaessa php kääntäis päivämäärän 2007-3-26 muotoon 26.3.2007.

Mulla on ollut jossain vaiheessa toimiva skripti tähän juttuun mut oon poistanut kyseisen tiedoston jossa toi oli, nyt oon sormi suussa kun en muista miten se meni :)

Antti Laaksonen [26.03.2007 21:43:56]

#

Päivämääriä voi muutella vaikka seuraavalla koodilla:

<?php

// muuta ja käännä
function mjk($pvm, $alku, $loppu) {
    $tiedot = explode($alku, $pvm);
    $tiedot = array_reverse($tiedot);
    return implode($tiedot, $loppu);
}

$pvm = "26.3.2007";
echo mjk($pvm, ".", "-");

$pvm = "2007-3-26";
echo mjk($pvm, "-", ".");

?>

Tämän lisäksi täytyy tosin tarkistaa, että käyttäjä antaa kunnollisen päivämäärän. Päivämäärän muutoksen voi ehkä sälyttää myös tietokannan tehtäväksi, jos ei halua tehdä sitä PHP:llä.

jarspa [26.03.2007 21:51:48]

#

Kiitti! Löysin myös aikaisemmin käyttämäni koodin...

<?php

// Hajotetaan
$Apu = explode(" ", trim($pvm));
$VKP = explode("-", $Apu[0]);

// Muutetaan aikaleimaksi
$aikaleima = mktime($VKP[1], $VKP[2], $VKP[0]);

//uusi aika
$muutettupvm=date("d.m.y", $aikaleima);
?>

kayttaja-2791 [26.03.2007 22:33:23]

#

SQL-kantoihin kyllä saa päiväyksen vaikka missä muodossa... Mysql:ssä se onnistuu vaikka str_to_date funktiolla. Vastaavasti haettaessa date_format funktiolla sen saa haluamassaan muodossa ulos... Ja eikös tuota SQL:n vakiomuotoakin saa vaihdettua jollain (yksinkertaisesti localella?)?

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta