Ankündigung

Einklappen
Keine Ankündigung bisher.

timestamp in zwei Arrays markieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • timestamp in zwei Arrays markieren

    Hallo Leute,

    ich versuche die Tage der Woche jew. in 48 Einheiten (00:30,01:00;01:30;usw.) darzustellen und die Felder mit einem in MySQL eingetragenen Timestamp zu markieren.
    Ich habe es bereits geschafft die Tabelle und die Markierung anzuzeigen, allerdings habe ich glaube ich einen Denkfehler in meiner Tabelle.
    Ich muss den Timestamp aufteilen in Datum und Uhrzeit um ein Ergebnis zu bekommen, allerdings zeigt er mir dann jedes Datum mit allen Zeiten an.
    Bsp. Termin 13.11.2014 9:00;14.11.2014 12:00 - Markierung 13.11 9 und12uhr und 14.11 9 und 12 Uhr.
    Gibt es eine Möglichkeit die Daten komplett (13.11.2014 9:00)im Array mit ID zu suchen und evtl. bis Enddatum zu markieren, oder sollte ich es wie ein Kalender aufbauen, das er die Stunden durchzählt und darstellt. Leider weiß ich nicht wie ich das bewerkstelligen soll.
    der PHP code:
    PHP-Code:
    $buchstart_d = array();
    $buchstart_z = array();
    $id = array();
        
    $sql="SELECT *,date_format(buchstart,'%d.%m.%Y') as buchstart_d ,date_format(buchstart,'%l:%i') as buchstart_z FROM buchung order by id";

    $schedule mysql_query($sql$db) or die(mysql_error());

    while(
    $row mysql_fetch_array($schedule)){

    $buchstart_d[]=$row['buchstart_d'];
    $buchstart_z[]=$row['buchstart_z'];
    $id[]=$row['id'];
    $subject=$row['subject'];
    }
    $heute date("w",time())-1//Sonntag=0 
        
    $day = array(); 
         
        for(
    $i=0;$i<7;$i++) 
            
    $day[]        = date("d.m.Y",mktime(0,0,0,date("m",time()),date("d",time())-$heute+$i,date("Y",time())));
            
    $buchstartArray=array(''.$day['0'].'',''.$day['1'].'',''.$day['2'].'',''.$day['3'].'',''.$day['4'].'',''.$day['5'].'',''.$day['6'].'');

            
    $uber=array (' 00','01',' 02',' 03',' 04',' 05',' 06',' 07',' 08',' 09',' 10',' 11',' 12',' 13',' 14',' 15',' 16',' 17',' 18',' 19',' 20',' 21',' 22',' 23');
      
    $hours array_map(function($in) {
        
    $data explode('.'$in);
        
    $hours $data[0];
        
    $minutes = isset($data[1]) ? $data[1] :0;
        return 
    number_format($hours + (float)('.'.$minutes) * 60 1002':','');
    }, 
    range(0.0,23.5,0.5));  


    $i=0;




    echo 
    "<table border=0 cellpadding=1 >";
    echo 
    "<tr>";
    echo 
    "<td bgcolor='#0099CC'colspan='0'><strong>Uhrzeit</strong></td>\n";
    foreach(
    $uber as $uber) {
     echo 
    "<th border= '0' colspan='2' bgcolor='#ffffff'><c1><strong>$uber</strong></c1></th>\n";  
    }  echo
    "</tr>"  ;

    foreach(
    $buchstartArray as $val){
    echo 
    "<tr><td bgcolor='#0099CC'><strong>$val</strong>";
    echo
    "</td>\n";


    foreach(
    $hours as $cell)
    {    
                
    $cell=$cell.'';
          if(
    in_array($cell,$buchstart_z) && in_array($val,$buchstart_d))
          {
              
    $i=array_search($cell,$buchstart_z) && array_search($val,$buchstart_d);    
         if(
    $cell==$buchstart_z[$i] && $val==$buchstart_d[$i])
         {
         
         }
         echo 
    "<td bgcolor='#F91A03'></td>\n";
        }
         
          else
        echo 
    "<td bgcolor='#04B632'></td>\n";
        }
        echo 
    "</tr>";
        
    }
     


    echo 
    "</table>"
    Für Tipps und/oder Lösungen wäre ich sehr dankbar!

    Gruß
    Hanno

  • #2
    mysql_* ist veraltet, am besten erstmal auf PDO oder mysqli_* umsteigen.

    Dann noch ein Tipp zur Übersicht: Entscheide dich für einen Stil entweder:

    PHP-Code:

    foreach($array as $key => $value){

    }

    if(
    $a === TRUE){


    oder

    PHP-Code:

    foreach($array as $key => $value)
    {

    }

    if(
    $a === TRUE)
    {


    Mischen von verschiedenen Programmierstilen bringt dich nur durcheinander und du verlierst die Übersicht. (Ich persönlich bevorzuge Nr. 2)

    Auch solltest du nicht:

    PHP-Code:

    for($i 0$i 10$i++)
        
    // Anweisung
        // Andere Anweisung
    // Noch eine Anweisung 
    machen denn es wird in dem Fall nur die erste Anweisung in der for-Schleife durchgeführt, die Formatierung könnte dich aber dazu verleiten zu denken es würde auch Anweisung Nr. 2 ausgeführt, daher emfpehle ich auch hier Klammern zu setzen also:

    PHP-Code:

    for($i 0$i 10$i++)
    {
        
    //Anweisung

    - Laravel

    Kommentar

    Lädt...
    X