Porovnávání časů – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Porovnávání časů – PHP – Fórum – Programujte.comPorovnávání časů – PHP – Fórum – Programujte.com

 

Filashik
~ Anonymní uživatel
1 příspěvek
29. 5. 2016   #1
-
0
-

Ahoj,
potřeboval bych na stránce porovnávat 2 časy:
Aktuální čas > $aktualni_cas = StrFTime("%H:%M:%S", Time());

Konečný čas > $_SESSION["konecny_cas"] = StrFTime("$hodina:$minuta:$sekunda", Time());

----
Abych to tedy popsal, načte se mi stránka kde se mi vytvoří aktualní čas + 15 vteřin. Pak kliknu na odkaz a ten provede akci X pokud jsem kliknul na odkaz do 15 vteřin, nebo provede akci Y když to nestihnu za 15 vteřin.

----

$aktualni_cas = StrFTime("%H:%M:%S", Time());
    $konecny_cas = $_SESSION["konecny_cas"];
    
    if ($aktualni_cas > $konecny_cas) {
      header("Location: XXX");
    }  
    else {
      header("Location: YYY");
    }

----

Zkoušel jsem to nějak takto, ale script proběhne do konce jako kdyby tam žádné porovnávání nebylo. Ignoruje if i else.

 

Nahlásit jako SPAM
IP: 212.79.110.–
lukas.balaz0
Super člen
29. 5. 2016   #2
-
0
-

#1 Filashik
Nemôže ignorovať if aj else. Sú len dve možnosti: buď sa kód ani nespustí (daj si tam výpis do konzole či sa naozaj spúšťa vždy keď klikneš na button) alebo sa spustí, ale z nejakého dôvodu funkcia header nič nespraví (tiež si daj výpis aj do if aj do else a ak sa ti jeden z nich vypíše ale nič sa nestane, tak chyba bude v tom volaní funkcie header (nerobím s PHP, neviem presne ako funguje ...)).

Nahlásit jako SPAM
IP: 80.242.41.–
KIIV
~ Moderátor
+43
God of flame
29. 5. 2016   #3
-
+1
-
Zajímavé
Kit +

A jak se ma porovnavat retezec obsahujici  "22:12:22" s "22:12:37"? Proc si neulozis time()+15 a nesrovnavas s time()? Je to cislo, to se srovnava lepe. Nehlede ze kdyby nahodou srovnavani retezcu fungovalo jak doufas, tak to nebude fungovat kolem pulnoci, pripadne pokud to nekdo bude prohlizet presne kazdych 24 hodin, tak by to taky jelo (pokud bude jeste existovat session).

EDIT: ikdyz nejak zahadne asi i to srovnani funguje, mozna nahodou

A pokud to ignoruje presmerovani, je mozne, ze uz jsou hlavicky dokoncene. Pokud mas chybove hlasky vypnute, tak to nevypise nic, jinak by to hodilo neco prave o tom.

Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
peter
~ Anonymní uživatel
4016 příspěvků
30. 5. 2016   #4
-
0
-

KIIV ???

<?php
$a = '00:33:33';
$b = '03:00:00';
echo ($a>$b) * 1;
$a = '0:33:33';
$b = '03:00:00';
echo ($a>$b) * 1;
$a = '0:33:33';
$b = '3:0:0';
echo ($a>$b) * 1;
?>
// vypise 010

Casy jdou po sobe $b, $a. Porovnani funguje spravne, ale neporovnava casy, ale stringy. Pokud by chtel porovnat cas jako string, musel by mit format rok-mesic-den-hodina-minuta-sekunda a uvadet to s nulami.

<?php
$a = '2016-04-05 00:33:33';
$b = '2016-03-05 03:00:00';
echo ($a>$b) * 1;
$a = '2016-04-5 0:33:33';
$b = '2016-3-05 03:00:00';
echo ($a>$b) * 1;
$a = '2016-4-5 0:33:33';
$b = '2016-3-5 3:0:0';
echo ($a>$b) * 1;
?>
// vypise 101
Nahlásit jako SPAM
IP: 2001:718:2601:26c:908:ef2...–
NeregistrovanyHookyns
~ Anonymní uživatel
62 příspěvků
31. 5. 2016   #5
-
0
-

To je ta síla PHP, které zvládne porovnávat jablka a hrušky. Je schopné sčítat čísla a stringy bez ohledu na to, co všechno ve stringu je. 

 Kód:

echo "5 jablek" + "4 hrušky";

vypíše 9.

To je ale trochu OT.

Každopádně nejlepší řešení by bylo ukládat time(), jak zmiňuje KIIV, případně (pokud nemůžeš uložený formát z nějakého důvodu měnit) string zpětně naparsovat do data a pak porovnávat if time() > mktime($h, $i, $s).

Nahlásit jako SPAM
IP: 77.95.192.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý