Vytvoření rozsahu času (od-do) ze seznamu časů – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vytvoření rozsahu času (od-do) ze seznamu časů – PHP – Fórum – Programujte.comVytvoření rozsahu času (od-do) ze seznamu časů – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
CZechBoY+4
Věrný člen
10. 2. 2012   #1
-
0
-

Zdravim,
mám seznam časů (po 5minutách) a chtělo bych ten seznam zkrátit způsobem od-do

Příklad:
10:05, 10:10, 10:15, 10:20 by se zobrazilo jako 10:05-10:20

Nemá někdo hotový řešení nebo nějaký jednoduchý řešení?

Díky

Nahlásit jako SPAM
IP: 213.192.10.–
Reklama
Reklama
crazy
~ Moderátor
+10
Grafoman
10. 2. 2012   #2
-
0
-

#1 CZechBoY
tak si vem nejnižší a největší a dej mezi to pomlčku :)

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
CZechBoY+4
Věrný člen
10. 2. 2012   #3
-
0
-

mno, potřebuju kontrolovat rozdíl 5minut

Nahlásit jako SPAM
IP: 213.192.10.–
anonym
~ Anonymní uživatel
429 příspěvků
10. 2. 2012   #4
-
0
-

   

<?php


function get_time_difference( $start, $end )
{
    $uts['start']      =    strtotime( $start );
    $uts['end']        =    strtotime( $end );
    if( $uts['start']!==-1 && $uts['end']!==-1 )
    {
        if( $uts['end'] >= $uts['start'] )
        {
            $diff    =    $uts['end'] - $uts['start'];
            if( $days=intval((floor($diff/86400))) )
                $diff = $diff % 86400;
            if( $hours=intval((floor($diff/3600))) )
                $diff = $diff % 3600;
            if( $minutes=intval((floor($diff/60))) )
                $diff = $diff % 60;
            $diff    =    intval( $diff );            
            return( array('days'=>$days, 'hours'=>$hours, 'minutes'=>$minutes, 'seconds'=>$diff) );
        }
        else
        {
            trigger_error( "Ending date/time is earlier than the start date/time", E_USER_WARNING );
        }
    }
    else
    {
        trigger_error( "Invalid date/time data detected", E_USER_WARNING );
    }
    return( false );
}


print_r(get_time_difference("17:10", "22:30"));

?>

Najdi nejvetsi a nejmensi -> pak fce (copy z googlu)

Nahlásit jako SPAM
IP: 91.219.240.–
CZechBoY+4
Věrný člen
11. 2. 2012   #5
-
0
-

#4 anonym
tak tohle dělá úplně jinou funkci než asi chci..

tahle funkce mi řekne kolik minut je rozdíl dvou časů ne?

Já chci vložit pole časů a z nich dostat řetězce s časovejma intervalama

Nahlásit jako SPAM
IP: 213.192.10.–
LukoSS
~ Anonymní uživatel
73 příspěvků
11. 2. 2012   #6
-
0
-

Tak si to pole setřiď a pak ho projdi a testuj, jestli má následující prvek o 5 minut větší čas než ten předchozí. Pokud to bude splněno, tak rovnou vezmeš první a poslední prvek máš to vyřešené.

Nahlásit jako SPAM
IP: 88.103.252.–
CZechBoY+4
Věrný člen
11. 2. 2012   #7
-
0
-

a když nebude tak jsem kde jsem byl

Nahlásit jako SPAM
IP: 213.192.10.–
LukoSS
~ Anonymní uživatel
73 příspěvků
11. 2. 2012   #8
-
0
-

#7 CZechBoY
Tak moment, asi by jsi měl pořádně vysvětlit o co se snažíš. V prvním postu píšeš, že máš seznam časů po pěti minutách a později najednou řešíš, co když to po pěti minutách není. Co se má teda stát, když to po těch pěti minutách není?

Nahlásit jako SPAM
IP: 88.103.252.–
CZechBoY+4
Věrný člen
12. 2. 2012   #9
-
0
-

mám časy, který jsou minimálně po 5minutách (pak se to bere jako pokračování) nebo po víc (10 a více minut, pak se to bere jako přerušení a časy se oddělí čárkou třeba)

Nahlásit jako SPAM
IP: 213.192.10.–
LukoSS
~ Anonymní uživatel
73 příspěvků
12. 2. 2012   #10
-
0
-

#9 CZechBoY
To můžeš vyřešit jednoduše tak, že si naprogramuješ tu funkci, kterou jsem ti popisoval a budeš jí předávat postupně intervaly z toho pole takto:

  • Uděláš si pomocnou proměnnou, do které na začátku uložíš čas v prvním prvku pole.
  • V cyklu budeš postupně procházet pole a kontrolovat, jestli pole[i] a pole[i+1] má mezi sebou těch 5 minut.
  • Jakmile zjistíš, že ta podmínka není splněná, tak vezmeš ten čas z té pomocné proměnné a čas z pole[i] a buď ty časy budou rozdílné, v tom případě můžeš vypsat to rozmezí od - do, a nebo budou ty časy stejné a pak vezmeš ten čas z pole[i]. V každém případě si pak do té pomocné proměnné uložíš čas z pole[i+1].

Podle mě by toto mělo fungovat, ale píšu to z hlavy..

Nahlásit jako SPAM
IP: 88.103.252.–
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, 54 hostů

 

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