Miten saan kellonajan näkymään OIKEIN? Viimeeksi kun kokeilin tehdä PHP-tiedoston, joka näyttää päivämäärän, se tulosti oikean päivämäärän mutta kellonaika oli 7 tuntia jäljessä. Tein sen näin:
$aika = time();
$aika2 = date("d.m.Y \k\l\o H:i:s", $aika);
echo $aika2;
Eli kysymys kuuluu, missä virhe on vai onko sitä ollenkaan?
Palvelimen kello on varmaankin jäljessä.
Eipä ehkä.. vaan se palvelin on aikavyöhykkeellä seitsemän tuntia jäljemmässä kuin me.. Homman voisi korjata siten, että hakee jostain GMT-ajan, ja lisää siihin 2 tuntia..
Taikka lisää suoraan tuohon aikaan vielä 7 tuntia lisää. Tämä on sitten vain minun ehdotukseni. Ei enempää..
-Grey-
Täytyneepä kysyä domainkeskuksen ylläpidolta tuota kellonajan oikeellisuutta...
Jospa oma kellosi on etuajassa?
Joo huomasin et palvelimen kello on jäljessä...
hmm, itselläni on sama ongelma, eli palvelimen kello on tunnin jäljessä, mutta miten käytännössä lisään tuohon skriptiin tunnin lisää? =)
*aika noloa kysyy tämmöst nippelitietoo mutta kuitenkin...*
int time (void) Returns the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).
Eli lisäämällä/vähentämällä time():n palauttamaan arvoon 3600 sekuntia (60min, jokaisessa minuutissa 60sec = 1h) pitäisi homman olla klaari.
ehh, joo...
varmasti kaikki banaaninkuorta viisammat tajusivat vastauksesi mutta itse en vieläkään osaa lisätä sitä 3600 sekuntia time() funktion palauttamaan arvoon...
$aika = time();
$aika2 = date("d.m.Y \k\l\o H:i:s", $aika);
echo $aika2;
eli tommosee koodin pätkää lisätään se 3600 sekuntia miten?
*heh, sori tää vaiva*
Riittää, kun ensimmäinen rivi muunnetaan seuraavanlaiseksi:
$aika = time() + 3600;
ah, of course... mä oon vaa synnynnäinen nörtti, no mut kiitti avusta.
Pistän lähitulevaisuudes teille vähintäänki yhtä kiperiä kysymyksiä ratkottavaks :D
Jeps, no nytte se toimii, mut on vaa semmoi juttu et ku mul on toi sama kello useemmal sivul. Ensimmäinen sivu on esim index.php, toinen tiedostot.php jne...
Eli ku sivu index.php avataan näyttää se sen hetkisen ajan (17:40) niinku pitääkin, sitte mennää vaikka tiedostot.php joka myös näyttää sen hetkisen ajan (17:41) kuten kuinka ollakaan pitääkin. Mutta sen jälkeen (olettaen että aikaa on kulunut ainakin minuutti) mennään index.php sivulle ja se näyttää sen "alkuperäisen ajan" eli 17:40, eikä nykyistä aikaa (17:41) se kyllä hoituu sivua päivittämällä, mutta eikö olisi mitään keinoa saada sivu näyttämään oikean ajan automaattisesti ilman sivun päivittämistä....
Huhh, tulipa aika täsmällinen selostus ;p
No jos joku kuitenki saa selvää ni vois vaik vähän vittuilla asiasta...
Tnx
lainaus:
Mutta sen jälkeen (olettaen että aikaa on kulunut ainakin minuutti) mennään index.php sivulle ja se näyttää sen "alkuperäisen ajan" eli 17:40, eikä nykyistä aikaa (17:41) se kyllä hoituu sivua päivittämällä, mutta eikö olisi mitään keinoa saada sivu näyttämään oikean ajan automaattisesti ilman sivun päivittämistä....
Tuo aika tulee todennäköisesti selaimen välimuistin takia, koska selain on tallentanut index.php sivun muistiin ensimmäisellä vierailulla. PHP:llä sitä ei saa päivittymään automaattisesti, JavaScriptillä sen saisi, mutta mikäli sillä ajalla ei ole mikään kovin tärkeä tehtävä sivuilla, niin en suosittele sitäkään.
Niin, javallahan se onnistuis mut se on kyl huono vaihtoehto, parempi antaa sit olla noin ellei mitään todellakaa oo tehtävissä...
Voit ehkäpä myös kikkailla metatageilla (en suosittele):
<META http-equiv="Pragma" content="no-cache">
Näin selainta kehotetaan olemaan tallentamatta sivua välimuistiin.
Koklasin tota kellonaikaa ja huomasin et sen saa näinkin:
$tunti = date("H", time()) + 7; //Lisätään se 7 tuntia... $aika = $tunti . date(":i:s", time()); echo $aika;
Tee sellanen META-tagi et sivu päivitetään 60 sekunnin välein, vaikka näin:
<META http-equiv="Refresh" content="60; URL=sivu.php">
Eli toi 60 on tuolla ilmaisemassa aikaa sekunteina, jolloin selain lataa sivun uudelleen. Toi sivu.php on taas se tiedosto/osoite, josta sivu ladataan kun aika on kulunut umpeen. Jos et tota ymmärtänyt ni sitten en tiedä mitä sanoa ;-)
lainaus:
Tee sellanen META-tagi et sivu päivitetään 60 sekunnin välein
Älä ihmeessä. Jos mää luen sivua, mää en todellakaan halua, että se päättää ladata ittensä uudelleen kesken kaiken.
lainaus:
Tee sellanen META-tagi et sivu päivitetään 60 sekunnin välein, vaikka näin:
<META http-equiv="Refresh" content="60; URL=sivu.php">
Noin ei kannata tehdä. Mutta jos kuitenkin haluaa tollasen, on parasta jättää " URL=sivu.php" pois.
edit: toi lainaus kämmäs
Viisaampaa olisi toteuttaa tuo Javascriptillä. Muistathan, että sivun lukija saattaa olla eri aikavyöhykkeellä kuin sinä. Tällöin aika jonka esität on palvelimen aikavyöhykkeeltä. Javascriptillä taas voit lukea käyttäjän aikavyöhykkeen ajan sivulle. Seuraavassa linkkejä joista saat valmiin koodin:
http://www.javascript-page.com/clock.html
www.javascript-page.com/timer.html
http://myhome.shinbiro.com/~kbyon/jasc/control2.
Lisäksi ei ole erityisen järkevää ladata sivua 60 sekunnin välein palvelimelta - varsinkaan kun sivun selaajalla saattaa olla hidas yhteys - siinä palaa hihat kun yrität lukea jotain ja sivu häviää 60 sekunnin välein. IE:n uusi versio (6.x) vielä saattaa jäädä juntturaan latauksen ajaksi.
Lopuksi kysymys: Onko tarpeen näyttää kelloa websivulla? Jokaisessa käyttöjärjestelmässä on tätä nykyä kello (ellet nyt konsolitilassa websivuja selaile) jos näin ei ole on varmaan jokaisella kello lähettyvillä. Eli mitä tarkoitusta palvelee juokseva kello websivulla?
Aihe on jo aika vanha, joten et voi enää vastata siihen.