Javascript 格式化时间-1小时,多小时

Javascript 格式化时间-1小时,多小时,javascript,html,Javascript,Html,我有一个工作正常的圣诞节倒计时钟,但是当它显示1小时时,它显示1小时而不是1小时 我知道这有点琐碎,但我希望它是正确的,并显示正确的文字 有人能帮忙吗 代码是 <script language="javascript" type="text/javascript"> today = new Date(); BigDay = new Date("December 25, 2013") msPerDay = 24 * 60 * 60 * 1000 ; timeLe

我有一个工作正常的圣诞节倒计时钟,但是当它显示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>

今天=新日期();
BigDay=新日期(“2013年12月25日”)
msPerDay=24*60*60*1000;
timeLeft=(BigDay.getTime()-today.getTime());
e_daysLeft=时间间隔/毫秒/天;
daysLeft=数学楼层(e_daysLeft);
e_hrsLeft=(e_daysLeft-daysLeft)*24;
hrsLeft=数学楼层(e_hrsLeft);
分钟左=数学楼层((e_hrsLeft-hrsLeft)*60);
写下(“离圣诞节只有“+daysLeft+”天“+hrsLeft+”小时和“+minsLeft+”分钟了!”);
非常感谢,布朗

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

返回

20 hours
这是非常基本的,它存在于这个函数的更完整版本中

请参见此处以获取完整的(作为旁注,
文档。编写

这是一个使用JS的好地方

编辑:以上当然是很长的路要走,绝对不是大多数人喜欢的方式。您还可以使用三元运算符并执行以下操作:

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

您需要添加一个if/else语句,用于在编写此行文档之前检查hrsLeft;如果hrsLeft<2,则文本需要是“document.write”(“离圣诞节只有“+daysLeft+”天“+hrsLeft+”小时和“+minsLeft+”分钟了!”);谢谢你的帮助,祝你圣诞快乐,新年快乐。谢谢你的帮助,祝你圣诞快乐,新年快乐。谢谢你的帮助,祝你圣诞快乐,新年快乐。。。。
var hoursStr = hrsLeft === 1 ? hrsLeft + 'hour' : hrsLeft + 'hours';
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!";