Terve.
Etsikelen tapaa, jolla pystyisi vaihtamaan esim. 3 tunnin välein
sivulla olevan esim. divin sisältöä. Miten tämmöisen pystyisi toteuttamaan, ja
toteutetaanko se helpommin javascriptillä vai phplla?
Jos jollain olisi heittää esimerkkiä asiasta. ;)
Eiköhän se mene niin, että katsot php:llä kellonajan, ja jos kello on vaikkapa 15.00, niin tulostat "plaa", jos taas kello on jotain muuta, niin tulostat "pöö" :S
Noin yksinkertainen juttu onnistunee melkein parin minuutin oppaan lukemisella.
Juu, ainoa ongelma on se, että miten tarkistetaan onko aika se ja se?
<ymmärtää tahalleen väärin>
Ei onnistu PHP:lla, et pysty PHP:sta käsin ottamaan millään tavoin yhteyttä selaimeen ja kertomaan sille, että kolme tuntia on kulunut. PHP on palvelinpuolen kieli ja se vain generoi sisältöä pyydettäessä.
JavaScriptillä sen sijaan voit tehdä vaikka counterin, joka alkaa tikittää sivun lataamisen jälkeen ja kolmen tunnin kuluttua sitten muuttaa sivun sisältöä, nollaa counterin ja odotus alkaa uudestaan.
</ymmärtää tahalleen väärin>
<ymmärtää oikein>
PHP:n date() funktio auttaa.
</ymmärtää oikein>
En nyt ihan tiedä, millaista järjestelmää kaipaat, mutta tässä on yksi esimerkki. Ajatuksena on, että tiedot laitetaan taulukkoon ja lisäksi ilmoitetaan, kuinka kauan sama tieto näkyy. Tämän jälkeen skripti kierrättää taulukon tietoja automaattisesti niin, että tieto vaihtuu halutun ajan välein.
<?php // mitä tietoja näytetään $tiedot = array("Sisältö 1", "Sisältö 2", "Sisältö 3"); // kuinka monta tuntia sama tieto näkyy $aika = 3; // valitaan näytettävä tieto $kohta = intval((time() % (3600 * $aika * count($tiedot))) / 3600 / $aika); // nyt tieto voidaan näyttää echo $tiedot[$kohta]; ?>
Jos tietyn sisällön pitää ilmestyä näkyviin ylihuomenna kello 15.30, tämä järjestelmä ei tietenkään kelpaa sellaisenaan. Mutta voin laatia tarvittaessa esimerkin myös tästä tilanteesta.
Muoks. Tuo matemaattinen kaava perustuu siihen, että time-funktio palauttaa, kuinka monta sekuntia on kulunut jostain lähtien. Tunnissa on 3600 sekuntia, joten jos tietoja on n ja ne vaihtuvat m tunnin välein, tietojen täysi kierros kestää 3600 * m * n sekuntia. Kun lasketaan jakojäännös tällä luvulla, saadaan selville, missä kohtaa kierrosta ollaan sekunneissa. Kun tämä luku jaetaan 3600:lla, paljastuu, mikä kierroksen tunti on meneillään. Ja kun tämä luku jaetaan yhden sisällön näyttöajalla, tuloksena on lopulta oikea taulukon indeksi.
Aihe on jo aika vanha, joten et voi enää vastata siihen.