Tulin tässä tutkineeksi sivutilallani sijaitsevan SMF-foorumin tallentamia tietoja MySQL-kantaan. Taulussa smf_members näkee rekisteröityneet käyttäjät, rekisteröitymisajan ja kaikkea muuta sälää.
Haluaisin muuttaa PHP:n avulla päivämäärän, joka nyt oli siis tekstiformaatissa seuraavanlainen 1291468186 muotoon päivämäärä.kuukausi.vuosi. Miten moinen toteutetaan? Lasketaanko kenties päivien määrää, jostain ennalta asetetusta päivästä, kuten 1.1.1900.?
Tuo luku näyttää aivan UNIX-aikaleimalta. Luku ilmaisee ajan sekunteina hetkestä 1.1.1970 00:00:00 UTC. Sen voi muuttaa ihmiselle sopivaan muotoon funktiolla date https://www.php.net/manual/en/function.date.php.
Suoraan MySQL:n puolella aikaleiman saa DATETIME-muotoon funktiolla FROM_UNIXTIME, ja siitä taas muotoilu onnistuu funktiolla DATE_FORMAT.
Juu, löytyi PHP.netistä tähänkin jo ohje.
Tämä ei varsinaisesti koske enää tätä, mutta kysynpä, että voiko luku olla negatiivinen, jos päivämäärä on alle 1.1.1970.?
Joo, seuraavalla varauksella: "Before PHP 5.1.0, negative timestamps were not supported under any known version of Windows and some other systems as well. Therefore the range of valid years was limited to 1970 through 2038."
Aihe on jo aika vanha, joten et voi enää vastata siihen.