<CheckBox>
我想将三元操作转换为if else语句,我已经将语句存储在函数中,但遗憾的是它返回错误var timeNow = new Date();
var hours = time.getHours() > 12 ? time.getHours() - 12 : time.getHours();
hours = hours < 10 ? "0" + hours : hours;
function functionHours(){
if(hours > 12) {
return (time.getHours()-12)
} else {
if(hours < 10 && hours > 12) {
return ("0" + hours)
} else {
return (hours)
} else {
return (time.getHours())
}
}
}
。如果小时是1-9(例如09,08,05等等),那么我想要的是将小时数加到0小时......这似乎是什么问题?
答案 0 :(得分:1)
简单地做到
var hours = time.getHours();
if (hours < 12)
{
hours = ("0" + hours).slice(-2);
}
无需检查小时数大于12的情况。
答案 1 :(得分:0)
您的逻辑已关闭,以下情况永远不会成立,因为hours
同时不能同时小于10且大于12:
hours < 10 && hours > 12
试试这个版本,它是原始三元表达式的近似转换:
function functionGetHours12(hours) {
if (hours > 12) {
hours = hours - 12
}
if (hours < 10) {
return ("0" + hours)
}
else {
return hours;
}
}
console.log("hour 1: " + functionGetHours12(1));
console.log("hour 9: " + functionGetHours12(9));
console.log("hour 10: " + functionGetHours12(10));
console.log("hour 12: " + functionGetHours12(12));
console.log("hour 15: " + functionGetHours12(15));
console.log("hour 23: " + functionGetHours12(23));
答案 2 :(得分:0)
请检查转换后的三元运算符if-else和函数:
item.File.Author and item.File.ModifiedBy but not custom item.File.Location
&#13;