Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Aikavertailu

novari [15.05.2012 13:41:12]

#

Miten saan selville onko toinen aika toista suurempi minuutin tarkkuudella?
Yritän saada alla olevalla koodilla aikaleimaa mktime() funktiolla mutta se ottaa vain tunnit oikein muut tiedot tulostuvat time() funtion mukaan eli kello käy $tarkistus_aika muuttujassa.

$peliaika = file("aika.txt");// täällä aika muodossa: 12,0,0,5,15,2012,1
$tarkistus_aika = mktime($peliaika[0]);
$aika=time();
echo"aika = ".date("H:i - d.m.Y ", $aika)."<br>";
echo"tarkistusaika = ".date("H:i - d.m.Y ", $tarkistus_aika);

Lebe80 [15.05.2012 14:16:53]

#

Laita aika oikeassa muodossa sinne mktimelle, äläkä minään yhtenä merkkijonona

https://www.php.net/manual/en/function.mktime.php

Eli räjäytä merkkijonosi vaikka explodella arrayksi, jossa sinulla lieneekin sitten nuo arvot jo oikeassa järjestyksessä.

Metabolix [15.05.2012 14:54:06]

#

Onko jokin syy käyttää mktime-funktiota sen sijaan, että tallentaisit ajan suoraan UNIX-aikaleimana (lukuna) tai strtotime-funktiolle kelpaavassa muodossa (2012-05-15 14:54:06)?

Chiman [15.05.2012 15:19:45]

#

Testaamatta, eräs mahdollisuus:

$peliaika = file_get_contents("aika.txt");
$tarkistus_aika = call_user_func_array('mktime', explode(",", $peliaika));

Laiskuuden vuoksi jätin esimerkistä pois virhetilanteiden tarkistamisen, esim. tiedostoa ei ole olemassa -tapaus. Ne on lisättävä itse.

The Alchemist [16.05.2012 06:00:39]

#

Eihän tuossa ole mitään ihmeellistä, että "vain tunnit" tulevat oikein, kun et mktime():lle syötä mitää muuta kuin tunnit.

novari [18.05.2012 14:33:25]

#

Kiitos kaikille! Sain homman pelaamaan.

Vastaus

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

Tietoa sivustosta