Avatar billede culex Nybegynder
12. december 2006 - 01:36 Der er 5 kommentarer

Ændre tidsformat fra am/pm til 24 timers

Prøver lige igen da der måske skal lidt flere point til end jeg i første omgang havde sat på spørgsmålet.

Jeg skal lave et udtræk af et klokkeslet fra MySql som er i 24 timers format f.eks "22:00:00".

Før klokkeslettet vises undersøges via et if statement om man har valgt 12 timers eller 24 timers format.

Men hvordan laver man dette 24 timers format om til "g:i a" formatet på selve visningssiden.

Har selv makket lidt rundt med noget følgende:


<?
$dagenidag = date("w");
$languageday  = array(_MB_DJ_sun, _MB_DJ_m, _MB_DJ_t, _MB_DJ_w,
_MB_DJ_th,_MB_DJ_f,_MB_DJ_s);
$newdate = $languageday[$dagenidag];
$configdata = mysql_query("SELECT * FROM dj_config") or die(mysql_error());
while($cd = mysql_fetch_array($configdata))
{
        $id            = $cd['djtimeid'];
        $djtimezone = $cd['djtimezone'];
        $djtimetype          = $cd['djtimetype'];



        if ($djtimetype == 1){
$tidnu = date("H:i:s", mktime(date("H")+($djtimezone), date("i"), date("s"))); 
$nextevent = date("H:i:s",strtotime("+1 minutes"));
} else {
$tidnu = date("g:i a",strtotime("+ ".$djtimezone." hours"));
$nextevent = date("g:i a",strtotime("+1 minutes"));


}
$resultnext = mysql_query("SELECT * FROM dj_dj WHERE djstart > '$tidnu' AND '$dagenidag' = djdag order by djdag, djstart ASC LIMIT 1") or die(mysql_error());

while($nextnow = mysql_fetch_array($resultnext))
{
 
     
        $id            = $nextnow['id'];
        $dagenidag = $nextnow['djdag'];
        $djtitel            = $nextnow['djtitel'];
        $djname = $nextnow['djname'];
        $djstation    = $nextnow['djstation'];
        $djbeskrivelse  = $nextnow['djbeskrivelse'];
    $nextmarquee= "<MARQUEE WIDTH=100% DIRECTION=Left BEHAVIOR=SCROLL SCROLLAMOUNT=10 SCROLLDELAY=400>"._MB_DJ_scripttextnext.$nextnow['djstart']._MB_DJ_breaker.$nextnow['djslut']." ".stripslashes2($nextnow['djtitel'])._MB_DJ_marqueewith." ".stripslashes2($nextnow['djname'])." </marquee>";

}


$resultshow = mysql_query("SELECT * FROM dj_dj WHERE ('$tidnu' BETWEEN djstart AND djslut) AND '$dagenidag' = djdag") or die(mysql_error());

while($now = mysql_fetch_array($resultshow))
{
     
        $id            = $now['id'];
        $djtitel            = $now['djtitel'];
        $djname = $now['djname'];
        $djstation    = $now['djstation'];
        $djbeskrivelse  = $now['djbeskrivelse'];
        $djdag  = $now['djdag'];
     

    $block['content'] = "<table width=100px border=0 align=center>
  <tr>
    <td class=blockTitle><center>"."<strong><center>"."<center>"._MB_DJ_ligenupåstation.stripslashes2($now['djstation'])."</td></tr><td></strong><center>".stripslashes2($now["djtitel"])."</td></tr><td align=center>".'<a href="java script://" onclick="window.open(\'../culex/preview2.php?mode=info&id='.$now['id'].'\',null,\'height=500,width=480,status=no,toolbar=no,menubar=no,location=no,left=0,top=0\')"><img align=center src="'.XOOPS_URL.'/modules/culex/images/shots/thumbs/'.$now['djbillede'].'" width="100" height="120" alt=""'.$now['djname'].'" border="0" align="center"></a><br><center><strong>'.stripslashes2($now["djname"])."</strong><br></a></td></tr><td>".$newdate."<br><center><strong>".$now['djstart']._MB_DJ_to.$now['djslut']."</font><br></td></tr><td><br><em>".$nextmarquee."</em></center></tr>
</td></table>";


}
}

Dette virker bare ikke... Senere skal selve udtrækket også laves om.

echo "<br><center><strong>".$now['djstart']."</center></strong>";

Ved ikke om man måske kan lave dette tidspunkt om et eller andet sted så selve configudtrækket bestemmer om der vises h:i:s eller g:i a format.
Avatar billede showsource Seniormester
12. december 2006 - 06:52 #1
SELECT DATE_FORMAT(djdag, ". $var[x] .") as dagenidag

Du kan så lave et array med de forskellige tider, $var,

http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html
Avatar billede culex Nybegynder
12. december 2006 - 18:30 #2
Ok det forstår jeg så ikke helt. Henter jo allerede data, som gerne skulle passe med den aktuelle tid. Hvordan ændrer jeg så de allerede eksisterende queries så de henter det samme bare med den ændring du her viser ?
Avatar billede showsource Seniormester
12. december 2006 - 19:17 #3
Er nu heller ikke helt med på dit script der.
Men går ud fra at du et et datetimefelt i db, og alt efter hvilken tidszone man er i, skal formatet ændres ?
<og derefter hente mere info ud fra tid/tidformat ???
Avatar billede culex Nybegynder
13. december 2006 - 17:39 #4
ok. Skriptet henter dagen idag: $dagenidag = date("w");
Så henter den de data der passer på dagen idag + de data hvor start og slut passer med det klokken er nu. Programmet vises så titel, billede, navn og klokkeslet i en blok på det program der er i radioen lige nu, og skifter siden hen når tiden > djslut.

Jeg vil så gerne have at når man via config vælger enten 12 timer eller 24 timer så ændres klokkeslettet der vises i blokken automatisk til at vise enten 12/24 timers klokkeslet. Tror du er inde på det rigtige men kan bare ikke helt få min begynder-i-php hjerne til at fatte det *griner*
Avatar billede culex Nybegynder
13. december 2006 - 17:43 #5
Se www.culex.dk øverst til højre. Det er selve klokkeslettet der vises under billedet jeg gerne via config vil have fremvises på entne 24 eller am/pm måden
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB