将日期中的JavaScript三元运算转换为条件语句

时间:2018-03-23 06:16:06

标签: javascript

<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小时......这似乎是什么问题?

3 个答案:

答案 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和函数:

&#13;
&#13;
item.File.Author and item.File.ModifiedBy but not custom item.File.Location
&#13;
&#13;
&#13;