MySQL TIME hinzufügen zu timestamp

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

  • MySQL TIME hinzufügen zu timestamp

    Hallo,

    ich habe in einer tabelle ein feld TIME und möchte dies zu einem aktuellen timestamp hinzufügen. "gelöst" hab ich es schon, doch das ergebnis finde ich mehr als hässlich! hab mit den mysql-funktionen second, minute() und hour() die 3 teile aus dem TIME feld herausgesogen, diese dann zu den jeweils aktuellen sekunden/minuten/stunden dazugezählt und dann wenn der wert größer ist als der zulässige (minuten>60) dividiert und den wert dem nächstgrößeren übergeben.

    Auszug:
    PHP-Code:
    $convert getdate($this->currentTime);
    $convert['seconds'] += $array['sbuTimeSecond'];
    $convert['minutes'] += $array['sbuTimeMinute'];
    $convert['hours'] += $array['sbuTimeHour'];

    //oder minuten >59 und stunden ...
    while($convert['seconds']>59){
        if(
    $convert['seconds']>59){
            
    $convert['seconds'] -= 60;
            
    $convert['minutes'] += 1;
        }
        if(
    $convert['minutes']>59){
            
    $convert['minutes'] -=60;
            
    $convert['hours'] +=1;
        }
        if(
    $convert['hours']>23){
            
    $convert['hours'] -= 24;
            
    $convert['mday'] +=1;
        }
        if(
    $convert['mday']>=date('t')){
            
    $convert['mday'] = 1;
            
    $convert['mon'] +=1;
        }
        if(
    $convert['mon']>12){
            
    $convert['mon'] = 1;
            
    $convert['year'] +=1;
        }
    }
    $this->buildEndTime mktime($convert['hours'], $convert['minutes'], $convert['seconds'], $convert['mon'], $convert['mday'], $convert['year']); 
    nun meine frage:
    gibt's dafür nicht eine geeignete mysql/php funktion oder eine elegantere methode?
    Zuletzt geändert von ThaDafinser; 26.10.2007, 20:23.

  • #2
    http://dev.mysql.com/doc/refman/5.1/...ction_date-add

    oder

    http://dev.mysql.com/doc/refman/5.1/...unix-timestamp
    und dann in php drauf addieren auf den timestamp~

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Natürlich nicht zu vergessen der Manual-Eintrag zu mktime. Die Funktion macht nämlich automatisch das, was du hier von Hand machst.
      hopka.net!

      Kommentar


      • #4
        ich blindes huhn :-/
        hab diese funktionen natürlich angeschaut und ausprobier bzw. auch schon verwendet...

        aber das problem war ja das jahr/monat/tag wo noch bei mktime dabei war!
        und die lösung ist sowas von einfach:
        PHP-Code:
        $test mktime($array['sbuTimeHour'], $array['sbuTimeMinute'], $array['sbuTimeSecond']);
        $test -= mktime(0,0,0);
        $test += time(); 
        einfach mit mktime(0,0,0) das jahr/monat/tag abziehen und man hat das gewünschte ergebnis

        und jetzt haut mir mal bitte jeder eine =)

        Kommentar

        Lädt...
        X