Tervehdys,
Olen nyt vähä aikaa pähkäillyt, mutta en löytänyt mitään järkevää ratkaisua siihen, miten olisi hyvä ehtiä kuukauden ensimmäisen päivän nimi. Esimerkiksi sattuuko se tiistaille vai muulle päiville?
date('N',$timestamp) palauttaa viikonpäivän.
https://www.php.net/manual/en/function.gmmktime.
gmmktimellä palautat haluamasi kuukauden ensimmäisen päivän timestampiksi.
https://www.php.net/manual/en/function.strftime.
<?php echo "1/1/2008 - %a = " . strftime("%a", strtotime("1/1/2008")) . "\n<br>"; echo "2/1/2008 - %a = " . strftime("%a", strtotime("2/1/2008")) . "\n<br>"; echo "3/1/2008 - %a = " . strftime("%a", strtotime("3/1/2008")) . "\n<br>"; echo "4/1/2008 - %a = " . strftime("%a", strtotime("4/1/2008")) . "\n<br>"; echo "1/1/2008 - %A = " . strftime("%A", strtotime("1/1/2008")) . "\n<br>"; echo "2/1/2008 - %A = " . strftime("%A", strtotime("2/1/2008")) . "\n<br>"; echo "3/1/2008 - %A = " . strftime("%A", strtotime("3/1/2008")) . "\n<br>"; echo "4/1/2008 - %A = " . strftime("%A", strtotime("4/1/2008")) . "\n<br>"; ?>
No niin, kalenteri alkaa olla melkein valmis. Puuttuu enää yksi ratkaiseva osa, eli pitäisi jotenkin saada luotua askellus joka siirtäisi kalenteria eteen tai taakse päin kk? Alla pätkä koodia. Eli tosiaan tohon date("d/m/Y") funktioon pitäisi ilmeisesti muuttuja jonka arvo olisi sekunteina riittävä seuraavaan kk menoons saakka? date("d/m/Y", $muuttuja)?
if(isset($_GET['kuukausi'])) { if($_GET['kuukausi'] == 'seuraava') $_SESSION['sessio_kuukausi'] +=1; if($_GET['kuukausi'] == 'edellinen') $_SESSION['sessio_kuukausi'] -=1; } //Tyhjät ruudut $tyhjien_ruutujen_lkm = 0; //tämä päivä $tama_paiva = date("d/m/Y"); //otetaan kuukauden numero $pvm = explode("/", $tama_paiva); $days = cal_days_in_month(CAL_GREGORIAN, $pvm[1], $pvm[2]);
Toshiba kirjoitti:
Eli tosiaan tohon date("d/m/Y") funktioon pitäisi ilmeisesti muuttuja jonka arvo olisi sekunteina riittävä seuraavaan kk menoons saakka? date("d/m/Y", $muuttuja)?
Juuri näin. Tämän muuttujan luot kätevimmin funktiolla mktime: https://www.php.net/mktime
Eli sen verran älysin itsekkin. En vaan tajua, että miten tohon saa "ladattua" sen loppu kk verran verran päiviä jne. Koska kuukaudet ovat kuitetenkin eri pituisia ja voi olla että mennään vaikka päivä nro. 31 ja sillon esim. 30 päivän siirto etiä päin voi olla hieman ärsyttävä.
Oletko lukenut noita antamiamme linkkejä ollenkaan. Lue ensiksi Date -funktion parametrien tarkoitukset ja katso mitä kaikkea sillä date-funktiolla voi tulostaa. Vinkki, katso format -parametrin "t":n tulostama arvo.
Sovella date -funktiota mktimeä hyväksikäyttäen.
Älä siirry päivien mukaan, vaan siirry kuukausien mukaan. Lue myös mktimen info-sivu ylläolevasta linkistä. Siinäkin on mukana tarvittavat parametrit millä voit vaihtaa kalenteristasi kuukautta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.