gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 19:42:00 26 4
gpt4 key购买 nike

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

关于javascript - 比较日期时无法使 getDate() 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55295441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com