Ankündigung

Einklappen
Keine Ankündigung bisher.

datumausabe ohne uhrzeit und dezimalstelle aufrunden

Einklappen

Neue Werbung 2019

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

  • datumausabe ohne uhrzeit und dezimalstelle aufrunden

    hi hab ne kleine frage


    wie kann ich es anstellen das er mir nicht immer sowas zeigt

    2008-08-06 00:00:00

    es steht so in der datenbank mit der uhrzeit, welche aber immer auf null ist, ich würde gerne nur das datum anzeigen lassen auf der rechnung z.b.


    die nächste kleine frage ist, wie kann ich sowas ab/aufrunden

    sorry wollt sagen 2 dezimalstellen nachm komma, auf/ab kann ich mit round()

    29.743

    diesen wert ermittle ich so
    $steuer= $row['4'] * '7,6' / '100';
    echo $steuer;

    danke für die hilfe...gruss

  • #2
    Um welches Datenbank-System handelt es sich denn? Oft gibt es Funktionen zur Manipulation von Datetime-Werten. bei MySQL zum Beispiel Date(expr)


    Und zur zweiten Frage: PHP: round - Manual
    Warum schreibst Du die Zahlenwerte als Zeichenketten?
    PHP-Code:
    $steuer$row['4'] * 7.6 100

    Kommentar


    • #3
      Zitat von David Beitrag anzeigen
      Um welches Datenbank-System handelt es sich denn? Oft gibt es Funktionen zur Manipulation von Datetime-Werten. bei MySQL zum Beispiel Date(expr)




      Und zur zweiten Frage: PHP: round - Manual
      Warum schreibst Du die Zahlenwerte als Zeichenketten?
      PHP-Code:
      $steuer$row['4'] * 7.6 100
      ok schau ich mir gleich mal an danke..es ist mysql ..
      und was meinst du genau mit zeichenketten?
      versteh ich nicht ganz

      und sorry daraus werd ich auch nicht ganz schlau

      Extracts the date part of the date or datetime expression expr.
      mysql> SELECT DATE('2003-12-31 01:02:03');
      -> '2003-12-31'

      ich gib den wert mit

      echo $row['27']; aus, das ist das datumfeld in der tabelle

      Kommentar


      • #4
        PHP: Strings - Manual
        Zitat von death25
        $steuer= $row['4'] * '7,6' / '100';

        Kommentar


        • #5
          Du musst den SQL Query ändern, nicht die Ausgabe!

          Kommentar


          • #6

            ok danke jetzt hab ich verstanden..

            dezimalstellen hab ich auch thx


            das mit der abfrage wie genau muss ich das machen, ich habe es im moment so

            SELECT * FROM `erfolgreiche auktionen` WHERE Auktionsende BETWEEN '$startdate'
            AND '$enddate' and bezahlt='1' order by Auktionsende";


            wobei das datum welches ich brauch das feld:Bezahldatum ist

            müsste ich das dann so machen

            Select alle felder die ich brauche, Beahldatum ('2003-12-31 01:02:03') where etc....

            oder wie ?

            Kommentar


            • #7
              Select alle felder die ich brauche
              Fang genau damit mal an. Das Abschneiden des Zeitwertes behandeln wir dann.
              Also anstatt * alle Felder als x,y,z-Liste nach SELECT eintragen.

              ich habe gerade nochmal kurz http://www.php.de/php-einsteiger/467...r-webkalk.html überflogen. An welcher Stelle des langen Weges zum Softwareentwickler befindest Du Dich gerade ungefähr?

              Kommentar


              • #8
                ok also ich bin noch am anfang und das mit dem webkalk hab ich erledigt..

                so nun hab ich es so

                Code:
                "SELECT Auktionsende,Auktionsnummer,'Anzahl Stück mit diesem Kaufpreis'
                , 'Kaufpreis in CHF pro Stück'
                ,'Transportkosten in CHF'
                ,Benutzername
                ,Firmenname
                ,Vorname
                ,Nachname
                ,Strasse
                ,Hausnummer
                ,Adresszusatz
                ,Land
                ,Postleitzahl
                ,Ortschaft
                ,   Bezahlt 
                ,Bezahldatum
                ,Kundennummer
                ,ArtNr
                 FROM `erfolgreiche auktionen`  WHERE Auktionsende BETWEEN '$startdate'
                AND '$enddate' and bezahlt='1' order by Auktionsende";

                Kommentar


                • #9
                  Code:
                  SELECT ...
                  ,Bezahldatum
                  Bezahldatum liefert Dir den Wert des gleichnamigen Feldes in jedem Datensatz.
                  Date(expr) liefert Dir den Datumsanteil eines Ausdrucks. In Deinem Fall ist der Ausdruck Bezahldatum. Also:
                  Code:
                  SELECT ...
                  ,Date(Bezahldatum)
                  Du kannst natürlich auch die Tabelle ändern und den Typ des Feldes Bezahldatum auf DATE stellen (weder Datetime noch Timestamp noch Varchar/Text)

                  Kommentar


                  • #10
                    ok hm also wenn ich das so mache

                    PHP-Code:
                    $select 'SELECT `Auktionsende`, `Auktionsnummer`, `Anzahl Stück mit diesem Kaufpreis`, `Kaufpreis in CHF pro Stück`, `Transportkosten in CHF`, `Benutzername`, `Firmenname`, `Vorname`, `Nachname`, `Strasse`, `Hausnummer`, `Adresszusatz`, `Land`, `Postleitzahl`, `Ortschaft`, `Bezahlt`, Date(Bezahldatum), `ArtNr` FROM `erfolgreiche auktionen`  WHERE Auktionsende BETWEEN $startdate
                    AND $enddate and Bezahlt=1 order by Auktionsende'

                    und dann mit
                    $rechnung = mysql_query($select);
                    while($row = mysql_fetch_row($rechnung)) {

                    aufrufe bekomme ich diese fehlermeldung

                    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/pacifica/public_html/auktionen/rechnung.php on line 16

                    ich mach irgendwas falsch mit den
                    ` oder?

                    Kommentar


                    • #11
                      Mach doch nicht so komplizierte Feldnamen in die Tabelle. Statt 'Name der nach der Geburt beim Standesamt eingetragen wurde' kann man auch 'vorname' schreiben. Und dann kann man sich auch die Backticks sparen.

                      Wenn ich nur ein Datum (z.B. Geburtstag) speichern will, dann wähle ich den Feldtyp date und wenn ich dazu auch die Zeit brauche (z.B. Anmeldung ) dann nehme ich datetime. Bei beiden nimmt uns MySql die Arbeit des Formatierens ab:

                      PHP-Code:
                      $sql "SELECT DATE_FORMAT(geburtsdatum,'%d.%m.%Y') AS gebdat ";
                      $erg mysql_query($sql);
                      $row mysql_fetch_assoc($erg);
                      echo 
                      $row['gebdat']; 
                      Was DATE_FORMAT alles so kann, findest du hier:
                      MySQL :: MySQL 5.1 Referenzhandbuch :: 12.5 Datums- und Zeitfunktionen

                      Kommentar


                      • #12
                        ja das problem ist wenn ich die feldnamen ändere muss ich das in so vielen dokumenten umändern, weil ist ja nicht nur diese hier..aber wieso nimmt er mir das nicht an mit den backticks...mit datum hab ich jetzt kapiert

                        Kommentar


                        • #13
                          Hallo!

                          Warum nutzt du nicht die Datumsfunktionen von PHP,das mache ich zumindest. So in die DB eintragen!

                          PHP-Code:
                          $datum time(); 
                          Beim auslesen dann so!

                          PHP-Code:
                          $datum date("d.m.Y H:i",$row['datum']); 
                          Den Feldwert in der Tabelle setzt du auf int!

                          Und das runden auf Kommastellen kannst du mit der PHP Funktion number_format() machen!

                          mfg der litter

                          Kommentar


                          • #14
                            Ich nutze diese Methode übrigens auch Little, jedoch sieht das jeder anders.

                            Ich muss nicht unbedingt genau wissen was in der Datenbank gerade für Daten (mehrzahl von Datum mein ich) stehen und zudem brauche ich die "Zahlen" zum rechnen, und wenn ich die erst mittels UNIX_TIMESTAMP zurückrechnen muss, kann ich sie ja gleich mit Zahlen in die DB schreiben, aber das ist, wie gesagt ansichtssache

                            Kommentar


                            • #15
                              hmm also in der datenbank ist es bei mir datetime, so sind die daten drin
                              2005-01-31 00:00:00
                              wenn ich importiere ist es in diese format
                              31.05.2008

                              in meiner import.php habe ich es dann so

                              $Daten[4] = date("Y-m-d H:i:s", strtotime($Daten[4]));

                              früher war noch die uhrzeit hinter dem datum..ist jetzt nicht mehr...

                              kann ich jetzt den typ des feldes von datetime auf date einfach ändern..müsste ich dann das hier
                              $Daten[4] = date("Y-m-d H:i:s", strtotime($Daten[4]));
                              irgendwie änder...und hätte es auswirkungen auf meine DB

                              thanks

                              Kommentar

                              Lädt...
                              X