Ankündigung

Einklappen
Keine Ankündigung bisher.

IntlDateFormatter und seine Parameter

Einklappen

Neue Werbung 2019

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

  • #16
    Den Umweg werde ich nicht gehen. Ich habe es jetzt mit der format-Methode umgesetzt (vom Grundsatz wie #13). Muss dafür im schlechtesten Fall aber 2 IntlDateFormatter-Objekte erstellen. Der Gedanke war nachdem ich hellbringrs Beispiel gesehen hatte, mittels formatObject immer auf die selbe Instanz zugreifen zu können.
    Die 2 Instanzen sind aber alles andere als ein Problem, wie der nachfolgende Ausschnitt aus einen Test zeigt.
    .
    IntlDateFormatter exists: language "fr" 214 $strDate = dt::create('14.1.2015')->formatL('l, d F Y','fr');
    $t->checkEqual($strDate,'mercredi, 14 janvier 2015');
    [3.3 ms]
    'mercredi, 14 janvier 2015'
    Ok
    format are IntlDateFormatter Constants 218 $strDate = dt::create('14.1.2015')->formatL('FULL+SHORT','pl');
    $t->checkEqual($strDate,'środa, 14 stycznia 2015 00:00');
    [0.6 ms]
    'środa, 14 stycznia 2015 00:00'
    Ok
    format with buddhist calendar 222 $strDate = dt::create('14.1.2015 16:45')->formatL('FULL+SHORT','es_ES@calendar=buddhist') ;
    $t->checkContains($strDate,'miércoles,14,enero,2558 ,B E,16:45');
    [1.0 ms]
    'miércoles, 14 de enero de 2558 BE 16:45'
    Ok
    .
    Die Masse der Zeit (3,3ms) wird beim Erstaufruf benötigt, da die Klasse ja erst geladen werden muss.

    Edit: protestix
    Ich möchte nicht die Zeitzone vom Formatter übernehmen, sondern die des DareTime-Objektes, welches ich formatiteren will.
    Und für exotische Ausgaben brauche ich den Kalendertyp IntlDateFormatter::TRADITIONAL, welchen ich per formatObject() nirgens unterbringen kann.

    Kommentar


    • #17
      Muss nochmal eine Bemerkung ausgraben:

      Zitat von protestix Beitrag anzeigen
      Wann ist die Klasse denn nicht vorhanden?
      http://php.net/manual/en/intl.requirements.php

      Und ältere Versionen sollten wohl nicht mehr im Umlauf sein.
      Kann man davon ausgehen, das auf "richtigen" Servern mit aktuellen PHP Versionen die IntlDateFormatter-Klasse immer vorhanden ist?

      Habe zum Testen noch ein PHP 5.3.8 am laufen, da fehlt die Klasse auch und kann auch nicht per php.ini aktiviert werden.
      Daher meine Unsicherheit.

      Kommentar


      • #18
        Auf der PHP-Sandbox Seite ist die nicht vorhanden unter 7.x. Aber ob das als "richtiger Server gilt" weiß ich jetzt auch nicht.
        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


        • #19
          Zitat von jspit Beitrag anzeigen
          Kann man davon ausgehen, das auf "richtigen" Servern mit aktuellen PHP Versionen die IntlDateFormatter-Klasse immer vorhanden ist?
          Ja.
          Sandboxen haben vieles abgeschaltet, das zählt also schon mal nicht.
          Zitat von jspit Beitrag anzeigen
          Habe zum Testen noch ein PHP 5.3.8 am laufen, da fehlt die Klasse auch und kann auch nicht per php.ini aktiviert werden.
          This extension is bundled with PHP as of PHP version 5.3.0
          Soviel laut Handbuch.
          http://php.net/manual/en/intl.installation.php

          Selbst auf den Freehostanbietern hat man diese Klasse dabei.

          Kommentar


          • #20
            Die Online-Tools sind für mich keine richtigen Server. Da fehlt eine Menge, was sonst immer da ist. Viel wohl auch aus Gründen der Sicherheit.

            Zitat von protestix Beitrag anzeigen
            Ja.
            Selbst auf den Freehostanbietern hat man diese Klasse dabei.
            Das ist doch schon mal eine konkrete Information !

            Kommentar

            Lädt...
            X