【问题标题】:Overnight Opening Time Checker JS隔夜营业时间检查器 JS
【发布时间】:2017-01-28 15:57:48
【问题描述】:

我正在为一个脚本而苦苦挣扎,该脚本导致一个通宵开放时间检查器具有两个不同的开放时间案例。我编写了一个脚本,将时间条目更改为消息,例如:打开、即将打开、即将关闭等。

我不确定这个隔夜检查器是否像我写的那样有用,因为当日期发生变化时,例如从星期四到星期五,它会在午夜后显示不正确的开放时间..

我在脚本中写了两个静态参数(天和小时)来测试它,但没有任何效果!

你能帮我解决这个问题吗? 谢谢!!

<script type="text/javascript">
var date = new Date();
var day = date.getDay();
var hour = date.getHours();
  var day = 2;
  var hour = 19;
if (day == 0 | 1 | 2 | 3 | 4 && hour == 18 | 19 | 20 | 21 | 22 | 23 | 0 | 1 | 2) {
	var weekday = "day" + day;
    var oldHTML = document.getElementById(weekday).innerHTML;
    if (hour == 18 || 2) {
        if (hour == 18 ){var newHTML = "<p><span class='label label-default'>Bald geöffnet</span></p>"; document.getElementById(weekday).innerHTML = newHTML;}
		if (hour == 2 ){var newHTML = "<p><span class='label label-default'>Bald geschlossen</span></p>"; document.getElementById(weekday).innerHTML = newHTML;}		
    }
	else {
		var newHTML = "<p><span class='label label-default'>Geöffnet</span></p>";
		document.getElementById(weekday).innerHTML = newHTML;
	}		
} else if (day == 5 | 6 && hour == 18 | 19 | 20 | 21 | 22 | 23 | 0 | 1 | 2 | 3 | 4) {
	var weekday = "day" + day;
	var oldHTML = document.getElementById(weekday).innerHTML;
    if (hour == 18 || 4) {
        if (hour == 18 ){var newHTML = "<p><span class='label label-default'>Bald geöffnet</span></p>"; document.getElementById(weekday).innerHTML = newHTML;}
		if (hour == 4 ){var newHTML = "<p><span class='label label-default'>Bald geschlossen</span></p>"; document.getElementById(weekday).innerHTML = newHTML;}		
    }
	else {
		var newHTML = "<p><span class='label label-default'>Geöffnet</span></p>";
		document.getElementById(weekday).innerHTML = newHTML;
	}
}
</script>
        <div class="col-md-3 col-sm-6 col-xs-12 opening_time">
          <h3>Öffnungszeiten</h3>
          <ul>
            <li>
              <p>Montag
                <time id="day1" datetime-start="19" datetime-end="3">19.00 - 03:00 Uhr</time>
              </p>
            </li>
            <li>
              <p>Dienstag
                <time id="day2" datetime-start="19" datetime-end="3">19.00 - 03:00 Uhr</time>
              </p>
            </li>
            <li>
              <p>Mittwoch
                <time id="day3" datetime-start="19" datetime-end="3">19.00 - 03:00 Uhr</time>
              </p>
            </li>
            <li>
              <p>Donnerstag
                <time id="day4" datetime-start="19" datetime-end="3">19.00 - 03:00 Uhr</time>
              </p>
            </li>
            <li>
              <p>Freitag
                <time id="day5" datetime-start="19" datetime-end="5">19.00 - 05:00 Uhr</time>
              </p>
            </li>
            <li>
              <p>Samstag
                <time id="day6" datetime-start="19" datetime-end="5">19.00 - 05:00 Uhr</time>
              </p>
            </li>
            <li>
              <p>Sonn- /Feiertage
                <time id="day0" datetime-start="19" datetime-end="3">19.00 - 03:00 Uhr</time>
              </p>
            </li>
          </ul>
        </div>

【问题讨论】:

  • 你的条件错了,把每个条件都打进去,在适用的地方加括号

标签: javascript html date time calendar


【解决方案1】:

我清理了代码并在上面做了一些基本的 JS 东西。

现在运行完美。随意使用这个 sn-p 来解决你的通宵检查问题..

var date = new Date();
var day = date.getDay();
var hour = date.getHours();
var arrayWorkHour = [18, 19, 20, 21, 22, 23, 0, 1, 2];
var arrayWorkDay = [0, 1, 2, 3, 4];
var arrayFreeHour = [18, 19, 20, 21, 22, 23, 0, 1, 2, 3, 4];
var arrayFreeDay = [5, 6];
var soonOpen = "<p><span class='label label-default'>Bald geöffnet</span></p>";
var soonClose = "<p><span class='label label-default'>Bald geschlossen</span></p>";
var openNow = "<p><span class='label label-default'>Geöffnet</span></p>";

if (($.inArray(day, arrayWorkDay) !== -1) && ($.inArray(hour, arrayWorkHour) !== -1)) {
  var weekday = "day" + day;
  var listItem = document.getElementById(weekday);
    if (hour == 18) {
      listItem.innerHTML = soonOpen;
    } else if (hour == 2) {
      listItem.innerHTML = soonClose;
    } else {
    listItem.innerHTML = openNow;
    }
} else if (($.inArray(day, arrayFreeDay) !== -1) && ($.inArray(hour, arrayFreeHour) !== -1)) {
  var weekday = "day" + day;
  var listItem = document.getElementById(weekday);
    if (hour == 18) {
      listItem.innerHTML = soonOpen;
    } else if (hour == 4) {
      listItem.innerHTML = soonClose;
    } else {
    listItem.innerHTML = openNow;
    }
}  
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="col-md-3 col-sm-6 col-xs-12 opening_time">
  <h3>Öffnungszeiten</h3>
  <ul>
    <li>
      <p>Montag
        <time id="day1" datetime-start="19" datetime-end="3">19.00 - 03:00 Uhr</time>
      </p>
    </li>
    <li>
      <p>Dienstag
        <time id="day2" datetime-start="19" datetime-end="3">19.00 - 03:00 Uhr</time>
      </p>
    </li>
    <li>
      <p>Mittwoch
        <time id="day3" datetime-start="19" datetime-end="3">19.00 - 03:00 Uhr</time>
      </p>
    </li>
    <li>
      <p>Donnerstag
        <time id="day4" datetime-start="19" datetime-end="3">19.00 - 03:00 Uhr</time>
      </p>
    </li>
    <li>
      <p>Freitag
        <time id="day5" datetime-start="19" datetime-end="5">19.00 - 05:00 Uhr</time>
      </p>
    </li>
    <li>
      <p>Samstag
        <time id="day6" datetime-start="19" datetime-end="5">19.00 - 05:00 Uhr</time>
      </p>
    </li>
    <li>
      <p>Sonn- /Feiertage
        <time id="day0" datetime-start="19" datetime-end="3">19.00 - 03:00 Uhr</time>
      </p>
    </li>
  </ul>
</div>

【讨论】:

    猜你喜欢
    • 2013-11-07
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 2018-01-21
    相关资源
    最近更新 更多