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

问题描述 投票:1回答:1

我正在制作一个解决方案,用户必须选择两个日期,然后我必须检查它们是否在一周之内,并找出它们之间有多少天。我尝试使用“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 getdate
1个回答
1
投票

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

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

var ukeSjekk = new Date();
© www.soinside.com 2019 - 2024. All rights reserved.