Autor Zpráva
moldow
Profil
Ahojte, robim vianocny kalendar v JQuery a potrebujem poradit.
Ako doplnit podmienku if ((d.getDay() == 0 ) || (d.getDay() == 6 )) o to, ze ALEBO ak je datum z pola var hdays.
Prikladam kompletny kratucky kod, kto chce moze pouzit. :)

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <style>
        * {
            margin:0;
            padding: 0;
        }
        body {
            font-family: Trebuchet MS, Verdana, Tahoma, Arial;
        }
        ul#CALendar {
            display: flex;
            list-style: none;
        }
        ul#CALendar li {
            border: #ccc 1px solid;
            margin: 5px;
            padding: 17px 10px;
        }
        ul#CALendar li.CALweekend {
            background-color: #bada55;
        }
        ul#CALendar li div {
            text-align: center;
        }

        ul#CALendar li div.CALdate {
                    font-size: 40px;
        }
        ul#CALendar li div.CALmonth {
                    font-size: 11px;
        }
        ul#CALendar li div.CALday {
                    font-size: 13px;
                    font-weight: bold;
        }
    </style>
</head>

<body>



<ul id="CALendar"></ul>

<script>

    var d = new Date("12/17/2018");            //nastav pociatocny datum MM/DD/RRRR)
    var ndays = 14;                         //nastav pocet kolko dni chces vygenerovat
    var hdays = [     "12/24/2018",                 //nastav statne sviatky
                    "27/12",
                    "28/12",
                    "29/12"
                ];

    var days = ["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"];
    var month = ["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"];

    var weekend = "";
    var text = "";
    var i    = 0;

    while (i < ndays) {
        if ((d.getDay() == 0 ) || (d.getDay() == 6 )) {
            weekend = "class='CALweekend'";
        }
        text     += "<li " + weekend + "><div class='CALdate'>" + d.getDate() + "</div><div class='CALmont'>" + month[d.getMonth()] + "</div><div class='CALday'>" + days[d.getDay()] + "</div></li>";
        d.setDate( d.getDate() + 1 );
        weekend = "";
        i++;
    }
    document.getElementById("CALendar").innerHTML = text;

</script>

</body>
</html>
Joker
Profil
moldow:
Když už data hdays definujete v JS, udělejte to jako JS datum.

Pak bude potřeba napsat kód, který projde všechno v hdays a porovnat.
Raději bych na to udělal samostatnou funkci.
moldow
Profil
A vedel by mi niekto napisat ako by taky upraveny kod vyzeral?
Dlho som s JQuery uz nerobil a nejako mi to uz nemysli.
Davex
Profil
moldow:
robim vianocny kalendar v JQuery
Uvedený kód vůbec jQuery nevyužívá a je to čistý JavaScript. Tento řádek můžeš klidně vymazat:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

Zjednodušeně:

1) Hodnoty v poli se svátky (v nějakém vhodnějším formátu) by se daly překonvertovat na timestamp do nového pole
var sdays = hdays.map(Date.parse);

2) kde se dá potom hledat
sdays.indexOf(+d) > -1
moldow
Profil
Ale ako postavit tu podmienku aby to hladalo v tom novom poli var sdays?
Vedeli by ste mi to trochu viac explicitne napisat?

codepen.io/moldow/pen/oJYwgB
Kajman
Profil
Ale to hledání máte přece v [#4] pěkně napsané, jen ho přidáte do podmínky neděle nebo sobota nebo svátek.
if ((d.getDay() == 0 ) || (d.getDay() == 6 ) || sdays.indexOf(+d) > -1)
Jen u těch datumů bude asi potřeba i rok.
moldow
Profil
Dakujem funguje vyborne.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0