2013-11-23 64 views
0

我有一個聖誕倒計時工作正常,但是,當它顯示1個小時,它說1「營業時間」不是1「一小時」格式化小時 - 1小時,幾個小時

我知道這是一個小有點微不足道,但我希望它是正確的,並顯示正確的話。

任何人都可以幫忙嗎?

守則是

<script language="javascript" type="text/javascript"> 
today = new Date(); 
    BigDay = new Date("December 25, 2013") 
    msPerDay = 24 * 60 * 60 * 1000 ; 
     timeLeft = (BigDay.getTime() - today.getTime()); 
     e_daysLeft = timeLeft/msPerDay; 
      daysLeft = Math.floor(e_daysLeft); 
       e_hrsLeft = (e_daysLeft - daysLeft)*24; 
      hrsLeft = Math.floor(e_hrsLeft); 
     minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60); 
     document.write("There's only "+daysLeft+" days, "+hrsLeft+" hours and "+minsLeft+" minutes left until Christmas!"); 
</script> 

非常感謝PBrown

+1

您需要在爲hrsLeft你寫這行文件撰寫(前一個檢查if/else語句添加「只有‘+ daysLeft +’天,「+ hrsLeft +」小時和「+ minsLeft +」分鐘,直到聖誕節!「);如果hrsLeft <2,那麼文本需要是「document.write(」只有「+ daysLeft +」天,「+ hrsLeft +」小時和「+ minsLeft +」分鐘,直到聖誕節!「); –

回答

1
today = new Date(); 
BigDay = new Date("December 25, 2013"); 
msPerDay = 24 * 60 * 60 * 1000; 
timeLeft = (BigDay.getTime() - today.getTime()); 
e_daysLeft = timeLeft/msPerDay; 
daysLeft = Math.floor(e_daysLeft); 
e_hrsLeft = (e_daysLeft - daysLeft) * 24; 
hrsLeft = Math.floor(e_hrsLeft); 
minsLeft = Math.floor((e_hrsLeft - hrsLeft) * 60); 
document.write("There's only " + daysLeft + getDayText(daysLeft) + " , " + hrsLeft + getHourText(hrsLeft) + " and " + minsLeft + getMinuteText(minsLeft) + " left until Christmas!"); 

function getHourText(hour) { 
    if (hour > 1) { 
     return " hours"; 
    } 

    return " hour"; 
} 

function getMinuteText(min) { 
    if (min > 1) { 
     return " minutes"; 
    } 

    return " minute"; 
} 

function getDayText(day) { 
    if (day > 1) { 
     return " days"; 
    } 

    return " day"; 
} 

編輯:以上是當然的做的很長的路,絕對不是大多數的首選方式。您還可以使用三元運算和做這樣的事情:

var str = hours + (hours > 1 ? " hours " : " hour ") + "left!"; 
+0

謝謝大家你的幫助,祝你聖誕快樂,新年快樂.... – PBrown

0
function pluralize(num, str){ 
    if(num > 1){ 
     return num+' '+str+'s'; 
    } 
    return num+' '+str; 
} 

使用

var hrsLeft = 20; 
pluralize(hrsLeft, 'hour'); 

返回

20 hours 

這是非常基本的,它存在這個功能的更完整版本。

在這裏看到一個完整的pluralize

+0

謝謝你的所有幫助,祝你聖誕快樂,新年快樂...... – PBrown

+0

謝謝你,你也是。 –

相關問題