Zur Navigation

Geöffnet/geschlossen mit Zeit [2]

11 kulimeya

Kann ich das jetzt so auf die Seite einfügen und das läuft??

16.09.2006 14:28

12 Jörg

Naja, das kannst du doch ausprobieren, gegebenenfalls auf einer Testseite.

Der Code sollte aber so funktionieren - solange der Wert für BeginnGeschlossen größer ist als der für BeginnVerfuegbar

16.09.2006 14:58

... 6 Jahre und 7 Monate später ...

13 André - bb (Gast)

Hallo Jörg,

tolles forum.

Ich habe genau die gleiche Frage zu diesem script auch wenn das jahre her ist.

Geöffent geschlossen script ...

2: fragen dazu.

1. Wie kann man den diese ganze Geschichte mit der serverseitigen Zeitabfrage realsieren?

2. Zb. freitag andere öffungszeiten als sonntag einbauen... hoffe das ich eine Antwort von dir bzw jemanden erhalte..


vielen Dank!

MFg

André

23.04.2013 19:21

14 Jörg

Wenn du PHP verwendest, kannst du mit mktime() Datum und Zeit in Zeitstempel umwandeln, die du mit dem aktuellen Zeitstempel time() vergleichen kannst

23.04.2013 20:43

... 7 Jahre und 1 Monat später ...

15 Marco T. (Gast)

Wie muss ich das Script anpassen, damit es verschiedene Zeiten am Tag mit geffnet und geschossen anzeigt? Wie kann ich die Wochentage integrieren?

Montag: 10.00 - 11.30 Uhr
Dienstag :10.00 - 11.30 Uhr / 14.00 - 18.00 Uhr
Mittwoch: 10.00 - 11.30 Uhr
Donnerstag: 10.00 - 11.30 Uhr / 14.00 - 16.00 Uhr
Freitag: 10.00 - 11.30 Uhr

<font face="arial">Jetzt:
<b>
<script type="text/javascript">
/* <![CDATA[ */
var today = new Date();
var hour = today.getHours();
var BeginnGeschlossen = 10;
var BeginnVerfuegbar = 12.30;
var info = '';
if (hour >= BeginnGeschlossen && hour <= BeginnVerfuegbar) {
info += '<span style="color:green">Geöffnet</span>';
} else {
info += '<span style="color:red">Geschlossen</span>';
}
document.write(info);
/* ]]> */
</script>

11.06.2020 07:59

16 Jörg

Das ist noch etwas komplizierter, v.a. wegen der halben Stunden; getHours() gibt die volle Stundenzahl zurück, also 12 und nicht 12.30.

Ich schreib später noch was zu einem Lösungsansatz (kann etwas dauern)

11.06.2020 09:09

17 Jörg

Das Script von 2006 ist schon arg veraltet, das hier ist jetzt auf einem etwas aktuellerem Stand:

<p>Jetzt: <span id="is-open"></span></p>

<script>
var openingHours = [
    [ 'Montag', '10:00', '11:30' ],
    [ 'Dienstag', '10:00', '11:30' ],
    [ 'Dienstag', '14:00', '18:00' ],
    /* ... und so weiter ... */
];

var weekdays = [
    'Sonntag',
    'Montag',
    'Dienstag',
    'Mittwoch',
    'Donnerstag',
    'Freitag',
    'Samstag'
];
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth();
var day = now.getDate();
var weekday = now.getDay();

var open = false;
for (var i = 0; i < openingHours.length; i++) {
    var openingHour = openingHours[i];
    var openingDay = openingHour[0];
    var beginTime = openingHour[1].split(':');
    var endTime = openingHour[2].split(':');
    var begin = new Date(year, month, day, beginTime[0], beginTime[1]);
    var end = new Date(year, month, day, endTime[0], endTime[1]);
    if (
        weekdays[weekday] == openingDay &&
        now >= begin &&
        now < end
    ) {
        open = true;
    }
}

var spanIsOpen = document.querySelector('#is-open');
if (open) {
    spanIsOpen.innerText = 'geöffnet';
    spanIsOpen.style.color = 'green';
} else {
    spanIsOpen.innerText = 'geschlossen';
    spanIsOpen.style.color = 'red';
}
</script>

In dem Array openingHours kann man die Öffnungszeiten definieren: der erste Wert gibt den Wochentag an, der zweite die Uhrzeit, wann das Geschäft öffnet, und der dritte Wert, die Uhrzeit, wann das Geschäft schließt.

11.06.2020 13:27

18 Marco T. (Gast)

Perfekt!!!

Ist es auch noch möglich, dass je nach Tag, die Zeile fett dargestellt wird?

Montag: 10.00 - 11.30 Uhr
Dienstag :10.00 - 11.30 Uhr / 14.00 - 18.00 Uhr
Mittwoch: 10.00 - 11.30 Uhr
Donnerstag: 10.00 - 11.30 Uhr / 14.00 - 16.00 Uhr
Freitag: 10.00 - 11.30 Uhr

Gruss Marco

11.06.2020 17:41

19 Jörg

Du könntest die Zeilen jeweils mit einer ID oder Klasse versehen, die den Wochentag enthält, z.B.:

<p id="Freitag">Freitag: 10.00 - 11.30 Uhr</p>

Der aktuelle Wochentag ist in dem Script in der Variable weekdays[weekday] enthalten, so dass du damit die entsprechende Zeile ansprechen und stylen kannst:

document.querySelector('#' + weekdays[weekday]).style.fontWeight = 'bold';

12.06.2020 11:40

20 Marco T. (Gast)

Und wo muss ich das einfügen, damit die Zeile resp. Tag fett ist?

<div class="table-responsive">
<table>
<thead>
</thead>
<tbody>
<tr>
<td>Montag</td>
<td>10.00 - 11.30 Uhr</td>
</tr>
<tr>
<td>Dienstag</td>
<td>10.00 - 11.30 Uhr<br />
14.00 - 18.00 Uhr</td>
</tr>
<tr>
<td>Mittwoch</td>
<td>10.00 - 11.30 Uhr</td>
</tr>
<tr>
<td>Donnerstag</td>
<td>10.00 - 11.30 Uhr<br />
14.00 - 16.00 Uhr</td>
</tr>
<tr>
<td>Freitag</td>
<td>10.00 - 11.30 Uhr</td>
</tr>
</tbody>
</table>
</div>

13.06.2020 16:02