Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP ja kuukauden ensimmäinen päivä

Toshiba [04.07.2008 13:05:41]

#

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?

Lebe80 [04.07.2008 13:20:35]

#

https://www.php.net/date


date('N',$timestamp) palauttaa viikonpäivän.

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

gmmktimellä palautat haluamasi kuukauden ensimmäisen päivän timestampiksi.

peg [04.07.2008 14:19:47]

#

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

<?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>";
?>

Toshiba [08.07.2008 17:36:06]

#

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]);

Juice [08.07.2008 17:59:52]

#

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

Toshiba [08.07.2008 21:43:06]

#

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ä.

Lebe80 [08.07.2008 22:11:54]

#

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.

Vastaus

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

Tietoa sivustosta