2015-09-26 49 views
0

我最近發現使用條件的形式:的Javascript條件

function leftPad(res6) {return (res6 < 10)?'0'+ res6:res6;} 
res6 =leftPad(res6); 

這是一個函數語句中的罰款。我不知道如何處理它自己的這種聲明(沒有關於這個字符串是否有適當的函數聲明的函數聲明)。

例如:我想要將日期與今天的價值進行比較的輸出,如果今天過後再使用「since」,否則使用「until」。一旦我明白如何編寫此語句,我可以比較日期值並將變量設置爲正確的結果,以放入我的輸出字符串中。

感謝

+1

您的兩個語句可以寫成一個...'res6 =(res6 <10) '0' + res6:res6;'...不這回答你的問題? –

+0

^^ @JaromandaX說什麼。它甚至不需要'()':'res6 = res6 <10? '0'+ res6:res6;' –

+0

這將有助於清理我之前問題中的代碼。謝謝你的建議。但目前這個問題仍然存在。 – levelbest

回答

0

你descibing什麼還有就是Conditional (ternary) Operator。它不需要在函數中,你的代碼可以寫成一行,就像T.J.克勞德說。

res6 = res6 < 10 ? '0' + res6 : res6; 

對於第二部分,並回答您的意見,您想要使用Date對象。

var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds 
var firstDate = new Date(); 
var secondDate = new Date("October 1, 2015 12:00:00"); 

var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay))); 
var since_until = d2 > d0 ? 'since' : 'until'; 

var sentence = "- " + diffDays + " Days " + since_until + " 10/01/2015 - Oct Pension" + "\n"; 

參照這樣的問題:How to calculate the number of days between two dates using JavaScript?

+0

該變量將打印爲帶引號的變量文本名稱。不知道爲什麼,但顯然我搞砸了引號?謝謝。 var d0 = new Date() var d2 = new Date(「October 1,2015 12:00:00」); //「Some Event」 var now_then2 = d2> d0? 'since':'直到'; var diff2 = Math.abs(d0-d2); //以毫秒爲單位的差異 var res2 = Math.round(diff2/one_day); res2 = res2 <10? '0'+ res2:res2; //輸出爲: - 05天+ now_then2 +「10/01/2015 - Oct Pension」+「\ n」一些事件 – levelbest

+0

@levelbest查看我的編輯 – enigma

+0

我很欣賞你的標記示例。我遇到的問題是我從輸出獲得不同的結果。 加入「 - 」+ res6 +「Days」+ word6 +「11/01/2015 - 某些數據 和 word6,證明我的變量word6在It中有正確的數據。變量和引號和變量是它的名稱而不是它的值 - 36天「+ word6 +」11/01/2015 - 某些數據 – levelbest