Hvorfor virker det ikke, forespørgsel forkert = comparison operators

Tags:    php

Hej alle sammen..

Jeg har dette problem som jeg ikke kan løse.. Mon i kan?
Jeg ved ikke om min forespørgsel er forkert, men når klokken bliver 18, udskriver den ikke: "det er aften".

Tilgengæld udskriver den morgen, middag, og nat.
Det jeg ikke kan forstå er at, jeg spørger om præcis det samme.

Fold kodeboks ind/udPHP kode 




3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Problemet er der findes ikke nogen 24'te time. Men det er strtotime ligeglad med, den returnerer bare et tal (unix timestamp) for den næste dag. Når den så konvertes tilbage af date("H:i", ...) ser den blot et timestamp til starten af dagen efter, dvs. 00:00 den efterfølgende dag. Så når du tjekker tiden i 'aften' tjekker den faktisk:

$aften = $date >= stt("18:00") && $date < stt("24:00");

===>

$aften = $date >= "18:00" && $date < "00:00";

Siden tiden aldrig er før "00:00" vil den $aften aldrig være sand.

En anden ting er at med undtagelsen af ugyldige tider som "24:00" returnerer din stt funktion det samme som inputtet. Dvs, stt("12:34") = "12:34".



Indlæg senest redigeret d. 13.05.2015 23:52 af Bruger #14645
Problemet er der findes ikke nogen 24'te time. Men det er strtotime ligeglad med, den returnerer bare et tal (unix timestamp) for den næste dag. Når den så konvertes tilbage af date("H:i", ...) ser den blot et timestamp til starten af dagen efter, dvs. 00:00 den efterfølgende dag. Så når du tjekker tiden i 'aften' tjekker den faktisk:

$aften = $date >= stt("18:00") && $date < stt("24:00");

===>

$aften = $date >= "18:00" && $date < "00:00";

Siden tiden aldrig er før "00:00" vil den $aften aldrig være sand.

En anden ting er at med undtagelsen af ugyldige tider som "24:00" returnerer din stt funktion det samme som inputtet. Dvs, stt("12:34") = "12:34".


Tak for hjælpen, dog løste det ikke mit problem.. Men det fik til at prøve 23:59 i stedet for 00:00.

Problem løst således:

Fold kodeboks ind/udPHP kode 




Hvis du trækker et minut fra alle sluttiderne skal du bruge <= i stedet for <. Ellers hvis tidspunktet er 11:59 vil morgen ikke matche.



t