我用条件写函数,哪一个应该比较日期,最后我应该得到特定日期的特殊结果?但工作不对,我想知道为什么?你能帮我一下吗?
function yourDates(date){
if (date <= '20.04' && date >= '21.03'){
zodiak_name = 'Aries';
}
else if (date <= '21.04' && date >= '21.05'){
zodiak_name = 'Taurus';
}
else if (date <= '22.05' && date >= '21.06'){
zodiak_name = 'Twins';
}
else if (date <= '22.06' && date >= '22.07'){
zodiak_name = 'Cancer';
}
else if (date <= '23.07' && date >= '21.08'){
zodiak_name = 'Lion';
}
else if (date <= '22.08' && date >= '23.09'){
zodiak_name = 'Virgin';
}
else if (date <= '24.09' && date >= '23.10'){
zodiak_name = 'Scale';
}
else if (date <= '24.10' && date >= '22.11'){
zodiak_name = 'Scorpion';
}
else if (date <= '23.11' && date >= '22.12'){
zodiak_name = 'Archer';
}
else if (date <= '23.12' && date >= '20.01'){
zodiak_name = 'Capricorn';
}
else if (date <= '21.01' && date >= '19.02'){
zodiak_name = 'Aquarius';
}
else {
zodiak_name = 'Fish'
};
return zodiak_name}
发布于 2022-07-27 04:12:31
用于比较DD.MM日期的Alghoritm
在这段代码中,您将字符串视为数字,从而获得错误。
但是,如果您以MM.DD格式编写日期,则可以对它们进行编号和运行常规比较。
发布于 2022-07-27 04:58:54
不必使用硬编码的日期,您可以使用索引来查找月份,并在几天内将其存储在数组中。
思维过程
如果月份是1月,而日期小于20,这意味着我们仍然处于12月的符号中,在第二种情况下,我们正在检查同一月份的日期是否小于给定的日期,这意味着除了返回当月的符号外,我们仍然处于前一个月的符号中。
function getSign(userDate){
const days = [21, 20,21, 21, 22, 22, 23, 24, 24, 24, 23, 22];
const signs = ["Aquarius", "Fish","Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn"];
let [day, month]=userDate.split(".").map(item=>parseInt(item));
// Subtracting one cause index starts from 0
// January is 0th month
month--;
if(month == 0 && day <= 20){
month = 11;
}else if(day < days[month]){
month--;
};
return signs[month];
}
发布于 2022-07-27 05:06:54
您可以使用像moment.js这样的库,也可以像上面提到的那样:
var dateFrom = "06/06/2022";
var dateTo = "06/10/2022";
var dateToCheck = "06/08/2022";
var d1 = dateFrom.split("/");
var d2 = dateTo.split("/");
var c = dateToCheck.split("/");
var from = new Date(d1[2], parseInt(d1[1])-1, d1[0]); // -1 because months are from 0 to 11
var to = new Date(d2[2], parseInt(d2[1])-1, d2[0]);
var check = new Date(c[2], parseInt(c[1])-1, c[0]);
console.log(check > from && check < to)https://stackoverflow.com/questions/73132134
复制相似问题