Hoe ga ik dit doen

Gestart doorTimkb9 reacties20 weergaven

10 berichten · pagina 1 van 1

Timkb

Lid · Topicstarter

Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hoi,

Voor een site wil ik graag het aantal dagen uren minuten en seconde weergeven.

Stel er zijn 0 dagen, 20 uur, 12 minuten en 0 seconde.

Dan zou ik graag willen dat hij alles met nul achterwegen laat dus: "20 uur, 12 minuten" maar dat is niet alles ik zou graag willen dat de getallen / aanduiding gescheiden worden met commas en bij de laatste "en" in plaats van een comma. Het bovenste voorbeeld zou dus als eindresultaat "20 uur en 12 minuten".

Ik heb aleen geen flauw idee hoe ik dit moet doen. Hopelijk kan iemand helpen.

aantal dagen enz worden aangegeven met $dagen, $uren, $minuten en $seconden. Hier staat dus nog niet dagen uren minuten seconden bij enkel het getal.

Alvast bedankt.
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
Je kan toch met een if-controle kijken of iets gelijk is aan 0, en zo ja die dat hele stuk string niet tonen.
0
Ewan

Lid

Berichten
8.302
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Aarclay schreef:
Je kan toch met een if-controle kijken of iets gelijk is aan 0, en zo ja die dat hele stuk string niet tonen.
Daar dacht ik zelfs aan met mn 0,5% verstand van php yummie
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
[COLOR= #0000BB]<?php[/COLOR]

[COLOR= #FF8000]/**
 * @author Rik Somers
 * @copyright 2012
 */[/COLOR]

    [COLOR= #007700]function[/COLOR] toDate[COLOR= #007700]([/COLOR][COLOR= #0000BB]$days[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$hours[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$minutes[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$seconds[/COLOR][COLOR= #007700])
    {[/COLOR]
        [COLOR= #FF8000]// Lege array aanmaken[/COLOR]
        [COLOR= #0000BB]$tmpArr[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]
        
        
        [COLOR= #FF8000]// Checken wat er bestaat[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$days[/COLOR][COLOR= #007700]))[/COLOR]
            [COLOR= #0000BB]$tmpArray[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #0000BB]$days[/COLOR] [COLOR= #007700]. ([/COLOR][COLOR= #0000BB]$days[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]1[/COLOR] [COLOR= #007700]?[/COLOR] [COLOR= #DD0000] dag[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #DD0000] dagen[/COLOR][COLOR= #007700]);[/COLOR]    
        
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$hours[/COLOR][COLOR= #007700]))[/COLOR]
            [COLOR= #0000BB]$tmpArray[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #0000BB]$hours[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000] uur[/COLOR][COLOR= #007700];[/COLOR]    
        
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$minutes[/COLOR][COLOR= #007700]))[/COLOR]
            [COLOR= #0000BB]$tmpArray[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #0000BB]$minutes[/COLOR] [COLOR= #007700]. ([/COLOR][COLOR= #0000BB]$minutes[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]1[/COLOR] [COLOR= #007700]?[/COLOR] [COLOR= #DD0000] minuut[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #DD0000] minuten[/COLOR][COLOR= #007700]);[/COLOR]    
        
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$seconds[/COLOR][COLOR= #007700]))[/COLOR]
            [COLOR= #0000BB]$tmpArray[/COLOR][COLOR= #007700][] =[/COLOR] [COLOR= #0000BB]$seconds[/COLOR] [COLOR= #007700]. ([/COLOR][COLOR= #0000BB]$seconds[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]1[/COLOR] [COLOR= #007700]?[/COLOR] [COLOR= #DD0000] seconde[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #DD0000] seconden[/COLOR][COLOR= #007700]);[/COLOR]
        
        [COLOR= #FF8000]// Lege string aanmaken    [/COLOR]
        [COLOR= #0000BB]$tmpStr[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000][/COLOR][COLOR= #007700];[/COLOR]   
        
        [COLOR= #FF8000]// Tellen hoeveel checks doorgekomen zijn [/COLOR]
        [COLOR= #0000BB]$count[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/count"]count[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$tmpArr[/COLOR][COLOR= #007700]);[/COLOR]
        
        [COLOR= #FF8000]// Als er meer dan één waarde in de array zit[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$count[/COLOR] [COLOR= #007700]>[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])
        {[/COLOR]
            [COLOR= #FF8000]// Alle waardes doorlopen, behalve de laatste[/COLOR]
            [URL="http://www.php.net/for"]for[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]=[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700]<[/COLOR][COLOR= #0000BB]$count[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700]++)
            {[/COLOR]
                [COLOR= #0000BB]$tmpStr[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #0000BB]$tmpArr[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]] .[/COLOR] [COLOR= #DD0000], [/COLOR][COLOR= #007700];        
            }[/COLOR]    
            
            [COLOR= #FF8000]// Van de waardes uit de for-loop halen we ,  er weer af[/COLOR]
            [COLOR= #0000BB]$tmpStr[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/substr"]substr[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$tmpStr[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/strlen"]strlen[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$tmpStr[/COLOR][COLOR= #007700])-[/COLOR][COLOR= #0000BB]2[/COLOR][COLOR= #007700]);[/COLOR]
            
            [COLOR= #FF8000]// We nemen de laatste waarde uit de array en plaatsen  en  erbij.[/COLOR]
            [COLOR= #0000BB]$tmpStr[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000] en [/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$tmpArr[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$count[/COLOR][COLOR= #007700]];
        }[/COLOR]
        [COLOR= #FF8000]// Als er maar één waarde is deze terug geven[/COLOR]
        [URL="http://www.php.net/else"]else[/URL]
        [COLOR= #007700]{[/COLOR]
            [COLOR= #0000BB]$tmpStr[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #0000BB]$tmpArr[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700]];    
        }[/COLOR]
        
        [COLOR= #FF8000]// De string terug geven om te echoen[/COLOR]
        [URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$tmpStr[/COLOR][COLOR= #007700];
        
    }[/COLOR]
    
    [COLOR= #FF8000]// Zou dit terug moeten geven: "20 uur, 33 minuten en 20 seconden" [/COLOR]
    [URL="http://www.php.net/echo"]echo[/URL] toDate[COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR][COLOR= #0000BB]20[/COLOR][COLOR= #007700],[/COLOR][COLOR= #0000BB]33[/COLOR][COLOR= #007700],[/COLOR][COLOR= #0000BB]20[/COLOR][COLOR= #007700]);[/COLOR]

?>


Niet uitgetest. Mogelijk moet je de waardes in de substr wat tweaken.

Maar zoiets is denk ik wat je bedoelde?
0
Timkb

Lid · Topicstarter

Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Aarclay schreef:
Je kan toch met een if-controle kijken of iets gelijk is aan 0, en zo ja die dat hele stuk string niet tonen.
Inderdaad, maar dan blijf ik zitten met het comma en "en" probleem.

@Rik, ik ga hem nu testen ik laat je weten of het werkt. Alvast bedankt in ieder geval wink
Edit: Helaas, het werkt niet hij geeft aan: Undefined offset: 0 on line 76 (76 is dit stuk $tmpStr .= $tmpArr[0]wink
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Faal.. Verander "$tmpArray" in de if-statements naar "$tmpArr"
emo
0
Timkb

Lid · Topicstarter

Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Rik schreef:
Faal.. Verander "$tmpArray" in de if-statements naar "$tmpArr"
emo
Zag het net, hoe kon ik dat nou over het hoofd zien!

Nu zit er een ander foutje: undifined offset 4 bij deze regel $tmpStr .= en . $tmpArr[$count]; Nu dacht ik omdat een array bij 0 begint dat $tmpStr .= en . $tmpArr[$count-1]; het zou oplossen maar dan krijg ik dit: 10 dagen, 12 uur, 12 minuten, 12 seconden en 12 seconden

Heb deze keer 10,12,12,12 gebruikt
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
for($i=0; $i<$count; $i++)

moet dan

for($i=0; $i<$count-1; $i++)

zijn.

Dan zou het moeten werken. De edit die je noemt in je post moet je dan uiteraard laten staan.
0
Timkb

Lid · Topicstarter

Berichten
4.214
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Werkt perfect nu, bedankt!
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Geen probleem. Fijn dat het nu goed werkt smile
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren