2016-01-19 2 views
-1

Я хочу изменить мой Обратный отсчет до 13:30, а не 16:00.Изменить Обратный отсчет времени до 13:30

<td> 
    <strong>Order before 15:30</strong> 
    <span><br>and your order is sent today</span> 
</td> 
$("strong:contains('Order before 15:30')").attr("id","countdown").delay(1000); 

function ShowTime() { 
    var now = new Date(); 
    var offset = now.getTimezoneOffset()/60; 

    now.setHours(now.getHours() + (offset+1)); 
    if (now.getHours() < 16) { 
     var hrs = 15-now.getHours(); 
     var mins = 59-now.getMinutes(); 
     var secs = 59-now.getSeconds(); 

     if (hrs < 10) 
      hrs = "0" + hrs; 

     if (mins < 10)  
      mins = "0" + mins; 

     if (secs < 10) 
      secs = "0" + secs; 

     timeLeft = 'Order within <span style="color: #ff713d; font-size: larger">' + hrs + 'h ' + mins + 'm ' + secs + 's</span>'; 
     $("#countdown").html(timeLeft); 
     $("span:contains('and your order is sent today')").html("<br />and your package is sent today") 
    } 
} 

var day = new Date().getDay(); 
if (day != 0 && day != 6) { 
    setInterval(ShowTime, 1000); 
} 

JS Fiddle

Как бы я этого добиться? Изменение этих параметров возвращает мне ошибку?

var hrs = 13 - now.getHours(); 
var mins = 29 - now.getMinutes(); 
var secs = 29 - now.getSeconds(); 
+0

Ваш код прекрасно работает, когда вы используете, что вы описали, как давая вам ошибку: https: // jsfiddle .net/RoryMcCrossan/hga7kcvy/4 /. Какая у вас ошибка? Казалось бы, это не связано с кодом, который вы показали. –

+0

@RoryMcCrossan вы видите 0-2 м посередине? – Hbaecklund

+0

Это потому, что вы вычитаете текущие минуты, '39', от' 29' и получаете отрицательное число. –

ответ

1
function ShowTime(hour, min) { 
    var now = new Date(); 
    var offset = now.getTimezoneOffset()/60; 

    now.setHours(now.getHours() + (offset+1)); 
    if (now.getHours() <= hour) { 
     var hrs = ((hour-1)%24)-now.getHours(); 
     var mins = ((min-1)%60)-now.getMinutes(); 
     var secs = 59-now.getSeconds(); 

Но вам нужно улучшить его немного, чтобы убедиться, что он работает должным образом, даже если вы «значит» на следующий день (сейчас это 18:00, и вы хотите, чтобы отсчитывать «до 6:00 на следующий день)

вы должны вызвать функцию с час, мин аргументы:

setInterval(function(){ShowTime(16,00)}, 1000); 
+0

Unchaught TypeError, изменить как? Каким образом? – Hbaecklund

+0

что такое полное сообщение об ошибке? – Gavriel

+0

Ничего не происходит: https://jsfiddle.net/hbaecklund/w9abhLea/1/ – Hbaecklund