Я сделал обратный отсчет JavaScript, он работает хорошо. Но я хочу, чтобы он перезагружался два раза в день, так как я отправляю свои заказы два раза в день. 1- 11:00 PST 2- 4PM PST

Я хочу, чтобы он показывал время обратного отсчета для 11:00 по тихоокеанскому времени после 4:00 по тихоокеанскому времени и после 11:00 он должен был сброситься и показывать обратный отсчет для 4:00, а после 4:00 по тихоокеанскому времени он должен был сброситься и показать обратный отсчет для 11:00 по тихоокеанскому времени

Вот мой код обратного отсчета.

// Set the date we're counting down to var countDownDate = new Date("July 26, 2019 11:00:00").getTime(); // Update the count down every 1 second var x = setInterval(function() { // Get today's date and time var now = new Date().getTime(); // Find the distance between now and the count down date var distance = countDownDate - now; // Time calculations for days, hours, minutes and seconds var days = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); // Output the result in an element with id="demo" document.getElementById("demo").innerHTML = days   "d "   hours   "h "   minutes   "m "   seconds   "s "; // If the count down is over, write some text if (distance {amp}lt; 0) { clearInterval(x); document.getElementById("demo").innerHTML = "EXPIRED"; } }, 1000); 
 {amp}lt;p id="demo"{amp}gt;{amp}lt;/p{amp}gt; 

На мой взгляд, в вашем запросе есть 2 или 3 неясных точки, например, от 11 до 16 стирает значение «EXPIRED» на дисплее. Существует также вопрос о том, работает ли этот скрипт непрерывно или перезапускается каждое утро (это вариант, который я выбрал), если он запускается непрерывно, предполагается, что отсчет времени начинается с 16 ч, а в 11 ч — на следующее утро?

Вот первое предложение:

 const CountDown = [ { elm: document.querySelector('#c11 span'), target:[11,00,00], time:0 } , { elm: document.querySelector('#c16 span'), target:[16,00,00], time:0 } ] , one_Sec = 1000 , one_Min = one_Sec * 60 , one_Hour = one_Min * 60 let JustNow = new Date() , idx_CountDown = -1 , refTimeLeft = 0 CountDown.forEach( (Cd, idx)={amp}gt; { Cd.time = new Date() Cd.time.setHours( Cd.target[0] ) Cd.time.setMinutes( Cd.target[1] ) Cd.time.setSeconds( Cd.target[2] ) let TimeLeft = JustNow - Cd.time Cd.elm.textContent = (TimeLeft{amp}lt;0) ? 'not yet' : 'EXPIRED' if ( TimeLeft {amp}lt; 0 {amp}amp;{amp}amp; (TimeLeft {amp}gt; refTimeLeft || refTimeLeft === 0 )) { idx_CountDown = idx refTimeLeft = TimeLeft } }) if (refTimeLeft {amp}lt; 0) { let timerInterval = setInterval(_={amp}gt; { let JustNow = new Date() , TimeLeft = JustNow - CountDown[idx_CountDown].time , TimeLPlus = Math.abs( TimeLeft ) , Hrs = ('0'   Math.floor(TimeLPlus / one_Hour)).slice(-2) , Mns = ('0'   Math.floor((TimeLPlus % one_Hour) / one_Min)).slice(-2) , Scs = ('0'   Math.floor((TimeLPlus % one_Min) / one_Sec)).slice(-2) if (TimeLeft{amp}gt;=0) { CountDown[idx_CountDown].elm.textContent = 'EXPIRED' if (  idx_CountDown{amp}gt;=CountDown.length) { clearInterval(timerInterval) } } else { CountDown[idx_CountDown].elm.textContent = `${Hrs}h ${Mns}m ${Scs}s` } } , one_Sec) } 
 {amp}lt;h4{amp}gt;CountDowns{amp}lt;/h4{amp}gt; {amp}lt;p id="c11"{amp}gt;until 11h : {amp}lt;span{amp}gt;{amp}lt;/span{amp}gt; {amp}lt;/p{amp}gt; {amp}lt;p id="c16"{amp}gt;until 16h : {amp}lt;span{amp}gt;{amp}lt;/span{amp}gt; {amp}lt;/p{amp}gt; 

версия 2 вечная только с 1 обратным отсчетом

 const lib_Count = document.querySelector('#count-element span:nth-child(1)') , val_Count = document.querySelector('#count-element span:nth-child(2)') , CountDown = [ { target:[11,00,00], time:0, lib : 'until 11h : ' } , { target:[16,00,00], time:0, lib : 'until 16h : ' } /* Add any time you need ---{amp}gt; , { target:[20,00,00], time:0, lib : 'until 20h : ' } ---- */ ] , one_Sec = 1000 , one_Min = one_Sec * 60 , one_Hour = one_Min * 60 let JustNow = new Date() , idx_CountDown = -1 , refTimeLeft = 0 // prepare CountDowns for the day CountDown.forEach( (Cd, idx)={amp}gt; { Cd.time = new Date() Cd.time.setHours( Cd.target[0] ) Cd.time.setMinutes( Cd.target[1] ) Cd.time.setSeconds( Cd.target[2] ) let TimeLeft = JustNow - Cd.time if (TimeLeft{amp}gt;=0) { Cd.time.setDate(Cd.time.getDate()   1) TimeLeft = JustNow - Cd.time } if (TimeLeft {amp}gt; refTimeLeft || refTimeLeft === 0 ) { idx_CountDown = idx refTimeLeft = TimeLeft lib_Count.textContent = Cd.lib val_Count.textContent = '' } }) setInterval(_={amp}gt; { let JustNow = new Date() , TimeLeft = JustNow - CountDown[idx_CountDown].time , TimeLPlus = Math.abs( TimeLeft ) , Hrs = ('0'   Math.floor(TimeLPlus / one_Hour)).slice(-2) , Mns = ('0'   Math.floor((TimeLPlus % one_Hour) / one_Min)).slice(-2) , Scs = ('0'   Math.floor((TimeLPlus % one_Min) / one_Sec)).slice(-2) if (TimeLeft{amp}gt;=0) { CountDown[idx_CountDown].time.setDate(CountDown[idx_CountDown].time.getDate()   1) idx_CountDown = (idx_CountDown  1) % CountDown.length lib_Count.textContent = CountDown[idx_CountDown].lib val_Count.textContent = '' } else { val_Count.textContent = `${Hrs}h ${Mns}m ${Scs}s` } } , one_Sec ) 
 {amp}lt;h4{amp}gt;CountDown{amp}lt;/h4{amp}gt; {amp}lt;p id="count-element"{amp}gt;{amp}lt;span{amp}gt;{amp}lt;/span{amp}gt;{amp}lt;span{amp}gt;{amp}lt;/span{amp}gt; {amp}lt;/p{amp}gt; 

Вы можете сделать следующую логику,

  • здесь есть две функции
  • первая функция будет содержать вашу логику для выполнения обратного отсчета
  • вторая функция добавит 11 часов к текущей дате, а затем вызовет первую функцию
  • Когда первая функция (обратный отсчет 11 часов) завершится, она снова вызовет вторую функцию и т. Д.

 // set the current date and time var currentCountDown = // current date // call nextCountDown and pass current date which will set the countdown for // next 11 hours nextCountDown(currentCountDown) function doCountDown(countDownDate) { // put the above code in this function // If the count down is over, call nextCountDown to start the countdown // for next interval nextCountDown(countDownDate) } function nextCountDown(countDownDate){ // add 11 hours to countDownDate newCountDownDate = countDownDate   11 hours // call doCountDown() by passing the new date doCountDown(newCountDownDate) }