Maria Smolina PHP tööd

Aja funktsioonid

Kuvada hooajapilti (kevad, suvi, sygis, talv) vastavalt tänasele kuupäevale

Täna on (m-d-Y) 04-30-2025
Kevad
hooaja pilt

Massivi abil näidata kuu nimega tänases kuupäevas

30. aprill 2025

Leia mitu päeva on koolivaheajani - 16.06.2025
(kasuta date_diff funktsiooni)

47 päeva

Nädalapäeva leidmine kuupäeva järgi


▼ Kood
<div class="hooaeg">
    <?php
    function clearVarsExcept($url, $varname) {
        // basename - makes the link relative, url must contain a filename that it returns basename('http://www.ee/index.php') > index.php
        $url = basename($url);
        if (str_starts_with($url, "?")) {
            return "?$varname=".$_REQUEST[$varname];
        }
        // strtok - returns first token after spliting on separator "?" strtoken('index.php?haha=lala', '?') > index.php
        return strtok($url, "?")."?$varname=".$_REQUEST[$varname];
    }
    echo "<h2 class='php_h2'>Aja funktsioonid</h2>";
    echo "<ul>";
    echo "date_default_timezone_set() - time zone";
    date_default_timezone_set('Europe/Tallinn');
    // Kui timezone ei ole määratud, siis näitab severi - localhosti aeg
    echo "time() - aeg sekumdides ". time();
    echo "<br>";
    echo "date() ". date('d.m.Y G:i:s', time());
    echo "<br>";
    echo "date('d.m.Y G:i:s', time())";
    echo "<br>";
    echo "d - päev 1...31";
    echo "<br>";
    echo "m - kuu 01...12";
    echo "<br>";
    echo "Y - aasta - neljakohane arv";
    echo "<br>";
    echo "G - 24-tundiline formaat";
    echo "<br>";
    echo "i - minutid 0-59";
    echo "<br>";
    echo date('Y');
    echo "<br>";
    echo "<strong>Tehted kuupäevaga:</strong>";
    echo "<br>";
    echo "+1 min: " .date('d.m.Y G:i:s', time()+60);
    echo "<br>";
    echo "+1 tund: " .date('d.m.Y G:i:s', time()+60*60);
    echo "<br>";
    echo "+24 tund: " .date('d.m.Y G:i:s', time()+60*60*24);
    echo "<br>";
    echo "<strong>Kuupäeva genireerimine:</strong>";
    echo "<br>";
    echo "mktime(tunnid, minutid, sekundid, kuu, päev, aasta)";
    echo "<br>";
    echo "Minu sünnipäev on ";
    $s=mktime(3,5,10,7,20,1996);
    echo date('d.m.Y G:i:s', $s);
    echo "</ul>";
    ?>
</div>
<div class="hooaeg">
    <h2 class="php_h2">Kuvada hooajapilti (kevad, suvi, sygis, talv) vastavalt tänasele kuupäevale</h2>
    <?php
    //4 hooaja pilti - kevad, suvi, sygis, talv
    $tana=new DateTime();
    echo "Täna on (m-d-Y) ". $tana->format('m-d-Y');
    echo "<br>";
    // hooaja punktid
    $kevad=new DateTime('March 20');
    $suvi=new DateTime('June 21');
    $sygis=new DateTime('September 22');
    $talv=new DateTime('December 22');

    switch (true){
        // kevad
        case $tana>=$kevad && $tana<$suvi:
            echo "Kevad";
            $pilt="content/img/kevad.png";
            break;
        // suvi
        case $tana>=$suvi && $tana<$sygis:
            echo "Suvi";
            $pilt="content/img/suvi.png";
            break;
        // sygis
        case $tana>=$sygis && $tana<$talv:
            echo "Sügis";
            $pilt="content/img/sygis.png";
            break;
        // talv
        case $tana>=$talv && $tana<$kevad:
            echo "Talv";
            $pilt="content/img/talv.png";
            break;
    }
    ?>
    <br><img src="<?=$pilt?>" alt="hooaja pilt" id="pilt_hooaeg">
</div>
<div class="hooaeg">
    <h2 class="php_h2">Massivi abil näidata kuu nimega tänases kuupäevas</h2>
    <?php
    $kuud=array(
        1=>'jaanuar',
        2=>'veebruar',
        3=>'märts',
        4=>'aprill',
        5=>'mai',
        6=>'juuni',
        7=>'juuli',
        8=>'august',
        9=>'september',
        10=>'oktoober',
        11=>'november',
        12=>'detsember');
    $paev=date('d');
    $year=date('Y');
    $kuu=$kuud[date('n')];
    echo "<div class='ylesanne'>".$paev.". ".$kuu." ".$year. "</div>";
    ?>
</div>
<div class="hooaeg">
    <h2 class="php_h2">Leia mitu päeva on koolivaheajani - 16.06.2025 <br>(kasuta date_diff funktsiooni)</h2>
    <?php
    // https://www.w3schools.com/PHP/func_date_date_diff.asp - allikas
    $date1=date_create("2025-06-16");
    $date2=date_create(date('Y-m-d'));
    $diff=date_diff($date1,$date2);
    echo "<div class='ylesanne'>".$diff->format("%a päeva"). "</div>";
    ?>
</div>
<div class="hooaeg">
    <form  name="ylesanne_aeg" id="ylesanne_aeg" action="<?=clearVarsExcept(basename($_SERVER['REQUEST_URI']), "leht")?>" method='post'>
        <fieldset>
            <legend><h2 class="php_h2">Nädalapäeva leidmine kuupäeva järgi</h2></legend>
            <label for="kuupaev">Sisesta kuupäev:</label>
            <input type="text" id="kuupaev" name="kuupaev" placeholder="näiteks 2025-04-08">
            <br>
            <input type="submit" class="kontrolli" value="Leia nädalapäev">
        </fieldset>
    </form>
    <?php
    if (isset($_REQUEST['kuupaev'])) {
        $sisestatud_kuupaev=$_REQUEST['kuupaev'];

        // Määrame nädalapäeva number
        // strtotime - muudaba rvväärtuseks https://www.w3schools.com/php/func_date_strtotime.asp
        // date('w', ...) - näitab soovitud osa kuupäevast, 'w'- nädalapäev https://www.w3schools.com/php/func_date_date.asp
        $paeva_number=date('w', strtotime($sisestatud_kuupaev));

        $paevad=['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'];

        echo "<br><div class='ylesanne'>Kuupäev: ".$sisestatud_kuupaev.", nädalapäev: ".$paevad[$paeva_number]."</div>";
    }
    ?>
</div>
<?php
echo "<details><summary class='kood'>▼ Kood</summary>";
echo "<div class='kood_div'>";
highlight_file('ajaFunktsioonid.php');
echo "</div>";
echo "</details>";
?>