Autor | Zpráva | ||
---|---|---|---|
pito Profil |
#1 · Zasláno: 27. 7. 2017, 11:10:29
Zdar,
Mám udělané dny ve stylu YYYY-MM-DD které jsou obaleny v odkazu. Uživatel může na ně kliknout a pokračovat dál. Ja teď potřebuji udělat aby pět dni před aktuálním datem byly ty dny neaktivní jako odkaz. Tedy if (isset($selected["id"])) { echo "<td class='date_selected clickable'><a href='select_time.php?date_id=" . $selected["id"] ."'>$day_num</a></td>"; } else { echo "<td>$day_num</td>"; } místo $selected["id"] bych měl mít asi $now tedy aktuální den a pak nějak zapsat těch pět dní před,ale nevím jak na to. Nebo udělat další podmínku?
Pomohl by mi někdo naznačit jak bych to mohl vyřešit? |
||
Tomášeek Profil |
#2 · Zasláno: 27. 7. 2017, 11:34:04
pito:
date , strtotime a podmínka (na základě níž vypíšeš odkaz nebo prostý text/nic).
|
||
pito Profil |
#3 · Zasláno: 27. 7. 2017, 12:03:58
jo,ale jak zapíšu ty 5 dní před aktuálním datem. Nevím jestli to dobře vysvětluji. Ukážu to na příkladu
$aktualne = date("Y-m-d", Time()) if ($aktualne < 5 + $aktualne) { echo "<a href="">$datum</a>"; } else { echo $datum; } dnes je 2017-07-27 vypis by mel vypadat takto 2017-07-27 2017-07-28 2017-07-29 2017-07-30 2017-07-31 <a href="rezervace.php?datum=2017-08-01">2017-08-1</a> <a href="rezervace.php?datum=2017-08-02">2017-08-2</a> <a href="rezervace.php?datum=2017-08-03">2017-08-3</a> no prostě aby 5 dní před aktuálním datem nešlo kliknout na odkaz |
||
Kcko Profil |
pito:
Ty odkazy máš v nějakém poli, resp ty datumy? Co takhle? <?php $dates = array( '2017-07-19', '2017-07-20', '2017-07-21', '2017-07-22', '2017-07-23', '2017-07-24', '2017-07-25', '2017-07-26', '2017-07-27', '2017-07-28', '2017-07-29', '2017-07-30', '2017-07-31', '2017-08-01', '2017-08-02', '2017-08-03', '2017-08-04', ); $dt = new \DateTime('+5 day'); foreach ($dates as $date) { $dtDate = new \DateTime($date); if ($dtDate > $dt) { printf('<a href="rezervace.php?datum=%s">%1$s</a> <br />', $dtDate->format('Y-m-d')); } else { printf("%s <br />", $dtDate->format('Y-m-d')); } } |
||
pito Profil |
#5 · Zasláno: 27. 7. 2017, 13:09:02
nepouzivam pole.
a neslo by to nejak takto? strtotime("+5 days") |
||
Kcko Profil |
#6 · Zasláno: 27. 7. 2017, 13:10:18
pito:
Je celkem jedno co pouzivas, proste tam akorát strčíš formát YYYY-MM-DD. Asi šlo, používám DateTime objekt, protože se s tím dobře pracuje, ten můj kód je funkční, vyzkoušej si to. |
||
Tomášeek Profil |
#7 · Zasláno: 27. 7. 2017, 13:55:29
pito:
Mrzí mě, že čteš napůl. Odkázal jsem tě na date a strtotime , z nějakého důvodu jsi druhou funkci ignoroval. V #5 jsi pak nějaký fragment kódu dal, ale...
„neslo by to nejak takto?“ ... funguje to? Pokud ano, tak šlo. Pokud ne, tak asi nějak podobně, ale trochu jinak. Nastuduj si v PHP Manuálu více o té funkci, zapoj logické uvažování a měl bys být schopen to dát dohromady. Na tom kousku kódu nic špatně není, čili, „ano, takto by to možná mohlo jít“. Druhá věc, že Kcko dodal funkční kód trochu jiným stylem, nicméně i tak používaným (divím se, že tě nenechal ještě chvilku přemýšlet a nastudovat něco nového). |
||
Časová prodleva: 7 let
|
0