Autor | Zpráva | ||
---|---|---|---|
mikk Profil |
#1 · Zasláno: 1. 1. 2012, 11:44:03
Ahoj.
Mám problém s následující podmínkou a lednovými daty: <?php $stedryden = 1224; /*Štědrý den*/ $silvestr = 1231; /*konec roku - Silvestr*/ $novyrok = 0101; /*Nový rok*/ $datum = date (m.d); /*mmdd; 25.1. = 0125*/ if ( ( ($datum >= $stedryden) and ($datum <= $silvestr) ) or ($datum == $novyrok) ) {echo 'tohle by tu mělo být v celém období a dnes taky<br>';}; /*má se zobrazit od 24.12. do 31.12. a 1.1. - každý rok*/ Mohl by mi někdo prosím poradit, kde mám chybu? |
||
Davex Profil |
#2 · Zasláno: 1. 1. 2012, 12:03:47
Hodnotu proměnné
$novyrok zadáváš v osmičkové soustavě a v desítkové soustavě tam je tedy jiné číslo než se kterým porovnáváš.
|
||
DJ Miky Profil |
#3 · Zasláno: 1. 1. 2012, 12:04:20
Zápis čísla začínající nulou znamená osmičkovou soustavu (0101 je desítkově 65), proto se 65 (0101) nerovná 101 (výsledek
date() , což je řetězec, u kterého se automaticky předpokládá desítková soustava). Měl bys tedy zapsat $novyrok = 101; , když už to chceš porovnávat takto.
Přehlednější by mi přišlo porovnávat zvlášť měsíc a zvlášť den. Mimochodem, zápis date(m.d) je špatně (funguje jenom díky benevolenci PHP), date() přijímá řetězec, tedy správně by to bylo date('md') .
|
||
mikk Profil |
#4 · Zasláno: 1. 1. 2012, 12:07:47
Davex:
Díky. Našel jsem teď ještě jedno řešení, a sice zapsat hodnoty jako řetězce => '1224', '1231' a '0101'. DJ Miky: Díky, kouknu na to. |
||
Časová prodleva: 12 let
|
0