Ankündigung

Einklappen
Keine Ankündigung bisher.

nicetime time_ago Deutsch

Einklappen

Neue Werbung 2019

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

  • nicetime time_ago Deutsch

    naben Leute,

    ich hab da eine Funktion in den Kommentaren von php.net gefunden und die würde ich jetzt gerne "eindeutschen" was mir aber nicht so recht gelinkt.

    Link: php.net/manual/de/function.time.php#89415

    Jetzt dachte ich mir, ich lösche dieses "ago" und trickse einfach bei der Ausgabe mit preg_replace.

    Ich schreibe mir aber einen Rattenschwanz um 14 verschiedene Varianten zu ersetzen, das geht doch bestimmt eleganter (kürzer) oder ?

    Meine funktionierender Ansatz sieht bisher so aus:
    PHP-Code:
    $altesdatum nicetime($row['datum']);

    $alt = array();
    $alt[0] = '/months/';
    $alt[1] = '/days/';
    $alt[2] = '/hours/';
    $alt[3] = '/minutes/';
    $alt[4] = '/seconds/';

    $neu = array();
    $neu[4] = 'Monate';
    $neu[3] = 'Tage';
    $neu[2] = 'Stunden';
    $neu[1] = 'Minuten';
    $neu[0] = 'Sekunden';

    $neuesdatum preg_replace($alt$neu$altesdatum); 
    Am liebsten wäre mir natürlich eine "Deutsche" Variante so einer nicetime() Funktion

    Hat hier jemand einen Tipp wie ich da ran gehen sollte ?

    gruß doowoop

  • #2
    hmmm auch sehr merkwürdig, ich teste gerade nur mal die nicetime() Funktion alleine und bei einem Eintrag aus der Datenbank vom vom 2014-09-19 18:43:26 steht was von 2 months ago ?

    Irgendwo ist da der Wurm drin

    Kommentar


    • #3
      Was willst du eigentlich? Die englischen Namen in deutsche Er-/Übersetzen?


      PHP-Code:
      $arrEN = array('months''days''hours',   'minutes''seconds');
      $arrDE = array('Monate''Tage''Stunden''Minuten''Sekunden');

      $str "Es sind 2 months und 7 days.";

      echo 
      str_replace($arrEN$arrDE$str);

      // Es sind 2 Monate und 7 Tage. 
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        hi hausl,

        genau das war mein Vorhaben und mit str_replace und den array('', '') geht das viel Sorgenfreier als mit preg_replace, vielen dank nochmal

        Kommentar


        • #5
          Ich rate dir dazu, dir das ganze zu sparen und das über <time>-Tags und jQuery zu regeln: http://timeago.yarp.com/

          So hast du erstens reale ( sich selbst updatende ) Time-Ago-Zeiten und zweitens Serverseitig nichts anderes zu tun als das Datum und die Uhrzeit in einem Spezifischen Format auszuliefern.
          [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

          Kommentar


          • #6
            Sollte das mal jemand brauchen, hier klick und fertig
            PHP-Code:
            $altdate nicetime($row['datum']);
            $eng = array('second''seconds''minute''minutes''hour''hours'
            'day''days''week''weeks''month''months''year''years''decade');
            $ger = array('Sekunde''Sekunden''Minute''Minuten''Stunde''Stunden'
            'Tag''Tage''Woche''Wochen''Monat''Monate''Jahr''Jahre''Jahrzehnt');
            $neudate str_replace($eng$ger$altdate); 

            Kommentar


            • #7
              Siehe mein Vorpost.
              [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

              Kommentar


              • #8
                nabend tr0y,

                Code:
                <time>
                nutze ich eh und Javascript wollte ich so wenig wie möglich verwenden.
                Ich guck mir dein Link auf jedem fall an, vielleicht ist das ja was für meine Sammlung

                Kommentar


                • #9
                  Zitat von doowoop Beitrag anzeigen
                  Sollte das mal jemand brauchen, hier klick und fertig
                  PHP-Code:
                  $altdate nicetime($row['datum']);
                  $eng = array('second''seconds''minute''minutes''hour''hours'
                  'day''days''week''weeks''month''months''year''years''decade');
                  $ger = array('Sekunde''Sekunden''Minute''Minuten''Stunde''Stunden'
                  'Tag''Tage''Woche''Wochen''Monat''Monate''Jahr''Jahre''Jahrzehnt');
                  $neudate str_replace($eng$ger$altdate); 
                  Abgesehen davon (#7), da stimmt was nicht wirklich, der Code oben ist nicht korrekt
                  $altdate = nicetime($row['datum']); ??

                  hier klick und fertig
                  Nicht wirklich, ausser man will Fehler produzieren
                  The string "()()" is not palindrom but the String "())(" is.

                  Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                  PHP.de Wissenssammlung | Kein Support per PN

                  Kommentar


                  • #10
                    jaha tr0y, ich bin nicht so schnell

                    Kommentar


                    • #11
                      Unterm Strich.. du willst eine Funktion erstellen, die Wörter durch andere Wörter erstetzt und fertig, oder? Da ist jetzt nichts so aufregendes dran
                      The string "()()" is not palindrom but the String "())(" is.

                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar


                      • #12
                        Zitat von hausl Beitrag anzeigen
                        Nicht wirklich, ausser man will Fehler produzieren
                        Also die Funktion nicetime() aus dem Kommentar von php.net sollte man dann auch verwenden

                        Kommentar


                        • #13
                          Kann doch sein, ich hab keine bessere Funktion gefunden und wer die in Deutsch braucht, findet diesen Beitrag

                          Ich frag doch nicht umsonst in diesem Forum in der Hoffnung das irgendeiner hier nen "Geileren" Schnipsel rumliegen bevor ich den weg über das ersetzen gehe.

                          Kommentar


                          • #14
                            Die (verständlichere) Funktionsweise einer solchen Funktion habe ich mal unter http://www.php.de/php-einsteiger/109...tml#post804951. Dieses Beispiel sollte sich einfacher übersetzen und erweitern lassen als das kompaktere nicetime aus dem Kommentar.

                            Kommentar


                            • #15
                              moin Blar,
                              PHP-Code:
                              if ($diff 86400){ return 'Heute'; }
                              if (
                              $diff 172800){ return 'Gestern'; } 
                              genau so eine Funktion habe ich jetzt aus einen meiner älteren Scripte entnommen. Mir war doch, das ich das mal wo gesehen habe

                              Kommentar

                              Lädt...
                              X