| 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: 15 let
|
|||
0