比较日期时无法使 getDate() 工作

Can't make getDate() working while comparing dates

我正在制定一个解决方案,用户必须 select 两个日期,然后我必须检查它们是否在一周内,并找出它们之间有多少天。我尝试使用 "getDate()" 来执行此操作,但我只是收到错误消息:

TypeError: periodeSlutt.getDate is not a function

我希望你们中的一位能告诉我我做错了什么。我试着四处搜索,但我真的无法弄清楚问题是什么。

另外:我是挪威人,所以评论和变量名都是用挪威语写的。对于给您带来的不便,我们深表歉意。

<!doctype html>

<html>
    <head>
        <meta charset="utf-8">
        <title></title>

        <style type="text/css">

        </style>
    </head>

    <body>
        <form>
            Hei! Takk for at du ønsker å bestille heiskort hos oss. <br>
            Vennligst oppgi din alder: <input type="number" id="alder" min="1" max="99"> <br>
            Når ønsker du å besøke oss? Fra: <input type="date" id="datoStart"> Til: <input type="date" id="datoSlutt"> (Maks 1 uke)<br>
            <input type="submit" name="fullfør" onclick="beregnPris()">
        </form>
        <script type="text/javascript">

            var pris = 0;
            var makspris = 0;

            function beregnPris() {
                // sjekk om brukeren er under eller over 12 år.
                var brukerAlder = document.getElementById("alder").value;
                console.log(brukerAlder);

                    if (brukerAlder >= 12) {
                    // hvis under --> sett pris til 280 og makspris til 900.
                        pris = 280;
                        makspris = 900;
                    } else {
                    // hvis over --> sett pris til 440 og makspris til 1500.
                        pris = 440;
                        makspris = 1500;
                    }


                // sjekk når brukeren har bestilt.
                var periodeStart = document.getElementById("datoStart").value;
                var periodeSlutt = document.getElementById("datoSlutt").value;

                console.log(periodeStart);
                console.log(periodeSlutt);

                    // hvis tidsperioden er mer enn 7 dager, eller går tilbake i tid --> feilmelding.


                if (periodeStart > periodeSlutt) {
                    alert("Startdatoen må komme før sluttdatoen!");
                }

                // trekker en uke fra "periodeSlutt", slik at den kan sammenlignes med "periodeStart" og sjekke at oppholdet ike er mer enn én uke.
                var ukeSjekk = 0;
                ukeSjekk.setDate(periodeSlutt.getDate() - 7);
                console.log(ukeSjekk);

                if (periodeStart < ukeSjekk) {
                    alert("Du kan desverre ikke booke oss for mer en en uke.")
                }


                    // hvis tiden er rett --> pris * anntal dager.

                        // sjekker hvor mange dager det er mellom "periodeStart" og "periodeSlutt".
                        var antallDager = periodeSlutt.getDate() - periodeStart.getDate();

                        brukerPris = pris * antallDager;

                        // hvis prisen er under makspris --> ferdig.
                        if (brukerPris < makspris) {
                            document.write("Prisen ble " + brukerPris + ". Håper du har det flott hos oss.");
                        } else {
                            // hvis prisen er over makspris --> pris = pris - makspris. Rabatt = pris. Pris = makspris. --> ferdig
                            brukerPris = brukerPris - makspris;
                            var rabatt = brukerPris;
                            brukerPris = makspris;
                            document.write("Prisen ble " + brukerPris + ". Håper du har det flott hos oss. Du fikk en rabatt på " + rabatt + "kr!");
                        }   
            }

        </script>
    </body>
</html>

您正在从输入中获取原始数值,但您需要将它们转换为 javascript Date() 对象。试试这个:

var periodeStart = new Date(document.getElementById("datoStart").value);
var periodeSlutt = new Date(document.getElementById("datoSlutt").value);

var ukeSjekk = new Date();