2016-12-11 35 views
1

我是Meteor和Node.js的新手,對於我的問題可能僅僅是對那些更熟練的人而言的平庸。Javascript函數調用,但結果不完全返回

我正在寫一個腳本,應該會在將來以+30分鐘的時間返回時間,格式如下:11.12.16 20:05但是,如果我嘗試運行我的函數,似乎沒有任何事情發生,並且在控制檯或控制檯中沒有錯誤從服務器。

這是我的html:

<body> 

    <header>DPPZ</header> 

    {{> price24}} 
    {{> price32}} 

    <div id="newWindow" style="display: none;"> 
     <p id="time"></p> 
    </div> 

</body> 

<template name="price24"> 
    <div class="container24"> 
     <button id="container24" onclick="ticket24()">24Kč</button> 
     <p>(30 minut)</p> 
    </div> 
</template> 

<template name="price32"> 
    <div class="container32"> 
     <button id="container32" onclick="ticket32()">32Kč</button> 
     <p>(90 minut)</p> 
    </div> 
</template> 

這裏是我的JS:

function ticket24(){ 
    document.getElementById("newWindow").style.display = "block"; 

    var d = new Date(); 
    var den = d.getDate(); 
    var mesic = d.getMonth(); 
    var rok = d.getFullYear(); 
    var hodina = d.getUTCHours(); 
    var minuta = d.getUTCMinutes(); 

    switch(mesic){ 
     case(0): 
      mesic = 1; 
     case(1): 
      mesic = 2; 
     case(2): 
      mesic = 3; 
     case(3): 
      mesic = 4; 
     case(4): 
      mesic = 5; 
     case(5): 
      mesic = 6; 
     case(6): 
      mesic = 7; 
     case(7): 
      mesic = 8; 
     case(8): 
      mesic = 9; 
     case(9): 
      mesic = 10; 
     case(10): 
      mesic = 11; 
     case(11): 
      mesic = 12; 
    } 

    function novaMinuta(hodiny, minuty){ 
     switch(minuta){ 
      case(0): 
       minuta = "00"; 
      case(1): 
       minuta = "01"; 
      case(2): 
       minuta = "02"; 
      case(3): 
       minuta = "03"; 
      case(4): 
       minuta = "04"; 
      case(5): 
       minuta = "05"; 
      case(6): 
       minuta = "06"; 
      case(7): 
       minuta = "07"; 
      case(8): 
       minuta = "08"; 
      case(9): 
       minuta = "09"; 
      default: 
       minuta = minuta; 
     } 

     if (10 <= Number(minuta) >= 29){ 
      return Number(hodina + 1)+ ":" + Number(minuta) + 30; 
     } 
     else if (Number(minuta) == 30){ 
      return Number(hodina + 2) + ":" + "00"; 
     } 
     else if (Number(minuta) > 30){ 
      return Number(hodina + 2) + ":" + Number(minuta) - 30; 
     } 
    } 
    rok = rok.toString().replace("20", ""); 


    document.getElementById("time").innerHTML = den + "." + mesic + "." + rok + 
    " " + novaMinuta(hodina, minuta); 

    document.getElementById("newWindow").style.display = "block"; 


} 

document.getElementById("newWindow").style.display = "block";作品,但代碼 '打印' 什麼的休息。

+1

'10 <=號(小粒)> = 29'不會表現得像你可能期待。 '數字(minuta)'不被雙方共享。它被理解爲'(10 <= Number(minuta))> = 29' - 意思是'true> = 29'或'false> = 29',最終。它應該是'10 <=數字(minuta)&&數字(minuta)> = 29'。 –

回答

1

你忘了break每個case

switch(mesic){ 
     case(0): 
      mesic = 1; 
      break; 
     case(1): 
      mesic = 2; 
      break; 
     ...