Kom ihåg mig?

Hjälp med öppettider - Öppnar igen om x timmar

 
Ämnesverktyg Visningsalternativ
Oläst 2012-03-06, 19:42 #2
Pate Pate är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2009
Inlägg: 5
Pate Pate är inte uppkopplad
Nykomling
 
Reg.datum: Dec 2009
Inlägg: 5
I ditt exempel så kan du alltid loopa igenom $open_hours en gång till om $remaining_open_hours är 0 och då jämföra med morgondagens öppettider istället (glöm inte att kolla minuter också).

Ett tips är att använda DateTime::diff för att jämföra tid med PHP. Då slipper du räkna antal timmar som först återstår av dygnet samt hur många som är kvar till dygnet efter.


Gjorde ett snabbt exempel på funktionen (dock något annorlunda strukturerad):

PHP-kod:

// Skapa Array med öppettider
$opening_hours = array(
    
=> array("08:30""17:30"), // Mån
    
=> array("08:30""17:30"), // Tis
    
=> array("08:30""17:30"), // Ons
    
=> array("08:30""17:30"), // Tors
    
=> array("08:30""17:30"), // Fre
    
=> array("08:30""17:30"), // Lör
    
=> array("08:30""17:30")  // Sön

);

// Ställ in dagens datum samt när butiken stänger
$currentDateTime = new DateTime();
$compareDateTime = new DateTime('today ' $opening_hours[intval(date('N'))][1]);

// Gör en kontroll om butiken är stängd först
if ($currentDateTime >= $compareDateTime) {
    
// Stängt idag, kolla hur länge som återstår till imorgon
    
$compareDateTime = new DateTime('tomorrow ' $opening_hours[intval(date('N'))][0]);
    
$remaining_hours $currentDateTime->diff($compareDateTime)->format('%h');
    echo 
"Butiken öppnar om ca " $remaining_hours " timmar";


// Butiken är fortfarande öppen
// Kontrollera om det är mindre än en timme kvar, visa då tiden i minuter istället
} elseif (intval($currentDateTime->diff($compareDateTime)->format('%h%I')) < 60) {
    
// Fortfarande öppet, stänger om mindre än en timme
    
$remaining_minutes $currentDateTime->diff($compareDateTime)->format('%i');
    echo 
"Butiken stänger om ca " $remaining_minutes " min";

// Mer än en timme kvar, så visar tiden i timmar
} else {
    
$remaining_hours $currentDateTime->diff($compareDateTime)->format('%h');
    echo 
"Butiken är öppen i ca " $remaining_hours " timmar till.";

Pate är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 00:01.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017