这可能听起来像一个愚蠢的问题,但是在数字检查开始时可能有一个0,并让它有效吗?
这就是我所拥有的:
function checkCosts() {
var date = document.getElementsByName("date")[0].value;
var roomtype = document.getElementsByName("roomtype")[0].value;
var night = document.getElementsByName("night")[0].value;
var month = date.substring(0, 2);
var year = date.substring(8, 10);
var day = date.substring(4, 6);
var time = month.concat(year);
var fulldate = day.concat(time);
if (time >= 0415 && <= 0915) {
if (roomtype == "Classic") {
if (night == "3") {
document.getElementById("cost").innerHTML = "1,480";
}
}
}
}
然而,当我在jslint.com中运行它时,我收到以下错误:
Unexpected '4' after '0'.
if(time >= 0415 && <= 0915){
line 9 column 28Unexpected trailing space.
if(time >= 0415 && <= 0915){
只有少数不同的陈述中的一个,所有变量都将被使用。
可以将字符串转换为整数,但我不知道如何执行此操作/是否可以正常工作。
答案 0 :(得分:0)
前导0不是使用int的方式。你应该看看here。 否则,只需使用字符串比较来使用alpabetical顺序。
答案 1 :(得分:0)
无需在数字前添加零。如果第一个数字标识了房间的级别,只需在需要的地方添加它。
答案 2 :(得分:0)
不是将月份与年份连接,而是将月份与月份连接,然后检查。 您需要对逻辑进行一些修改。
function checkCosts() {
var date = document.getElementsByName("date")[0].value;
var roomtype = document.getElementsByName("roomtype")[0].value;
var night = document.getElementsByName("night")[0].value;
var month = date.substring(0, 2);
var year = date.substring(8, 10);
var day = date.substring(4, 6);
var time = year.concat(month);//Concat year with month.
var fulldate = day.concat(time);
if (time >= 1504 && <= 1509) { //Year should be first
if (roomtype == "Classic") {
if (night == "3") {
document.getElementById("cost").innerHTML = "1,480";
}
}
}
}
如果您尝试将日期转换为数字并想要进行比较,请先使用年份然后按月份。
答案 3 :(得分:-1)
来自:
var time = month.concat(year);
我推断“时间”是一个字符串。
然后你应该在0415上加上引号
字符串使用字母顺序进行比较(我希望您在此比较中不需要全球化):
"04".concat("16") >= "0415"
-> true
"04".concat("14") >= "0415"
-> false