« Project home page
my little forum
Log in
Register
Search:
Back to the entry by Auge
Post reply
Reply to the message by
Auge
Name:
E-mail:
(optional, won't be displayed directly)
Leave this field empty:
Homepage:
(optional)
Leave this field empty:
Location:
(optional)
Remember me (cookie)
Category:
General
Project organisation
Technics
Design/Themes
Features
Development
Todo
Bugs
German / Deutsch
Spanish / Español
French / Français
Accessibility/UX
Subject:
Formatting help
skip to input
format text bold
[b]bold text[/b]
format text italic
[i]italic text[/i]
insert hyperlink
[link=http://example.com/]link text[/link] / [link]http://example.com/[/link]
set text color
[color=#rgb]colored text[/color]
font size
[size=small]small text[/size]
[size=large]large text[/size]
insert list
[list][*]list item[/list]
insert image
[img]http://example.com/image.jpg[/img]
left: [img=left]http://example.com/image.jpg[/img]
right: [img=right]http://example.com/image.jpg[/img]
thumbnail: [img=thumbnail]http://example.com/image.jpg[/img]
thumbnail left: [img=thumbnail-left]http://example.com/image.jpg[/img]
thumbnail right: [img=thumbnail-right]http://example.com/image.jpg[/img]
upload image
upload image ...
insert TeX code
[tex]TeX code[/tex]
insert code
[inlinecode]code[/inlinecode]
[code]code[/code]
[code=css]code[/code]
[code=html]code[/code]
[code=javascript]code[/code]
[code=perl]code[/code]
[code=php]code[/code]
[code=sql]code[/code]
[code=xml]code[/code]
:-)
;-)
:-P
:-D
:-|
:-(
:yes:
:no:
:ok:
:lol:
:lol2:
:lol3:
:cool:
:surprised:
:angry:
:crying:
:waving:
:confused:
:lookaround:
:clap:
:love:
:tick:
Message:
> > Hallo, > > > > > > "Um Datumsangaben in anderen Sprachen auszugeben, kann [link=https://www.php.net/manual/de/intldateformatter.format.php]IntlDateFormatter::format()[/link] statt date() verwendet werden." > > > > > > Das sieht aber, zumindest auf den ersten Blick, sehr viel komplexer aus und hat zudem [link=https://unicode-org.github.io/icu/userguide/format_parse/datetime/#date-field-symbol-table]eine gänzlich andere Syntax für den Datumsformatierung[/link]. > > > > Das entspricht auch meinem [link=https://mylittleforum.net/forum/index.php?id=14730]Vorschlag[/link]. > > Oh, ich habe dein Vorposting gestern Abend nicht noch einmal gelesen und daher ist mir entgangen, dass du genau diesen Vorschlag schon eingebracht hast. > > > Die Umstellung wäre vermutlich recht einfach. Für die Funktion [link=https://github.com/ilosuna/mylittleforum/blob/master/includes/functions.inc.php#L1677]format_time[/link] müsste es dann so aussehen (ungetestet) in seiner einfachsten Form ohne Zeitzone usw.: > > > > [code=php]function format_time($format, $timestamp = 0) { > > $formatter = new IntlDateFormatter(locale_get_default()); // wurde zuvor via setlocale(<array>) gesetzt. > > //$formatter->setPattern('d. MMMM Y, hh:mm'); > > $formatter->setPattern($format); > > > > if ($timestamp == 0) > > $timestamp = TIMESTAMP; > > > > $date=date_create(); > > $dateTime = date_timestamp_set($date, $timestamp); > > > > if (defined('LOCALE_CHARSET')) { > > return iconv(LOCALE_CHARSET,CHARSET, $formatter->format($dateTime)); > > } > > else { > > return $formatter->format($dateTime); > > } > > }[/code] > > > > Das [i]Problem[/i] ist hierbei jedoch die Angabe [inlinecode]$locale[/inlinecode], die ein String sein muss. Durch die multiple Belegung in der Sprachdatei haben wir hier aber ein Array … > > Hier übersiehst du die Funktionsweise der Funktion [inlinecode]setlocale[/inlinecode]. Mit der Funktion wird aus dem Array [inlinecode]$lang['locale'][/inlinecode] der erste Eintrag, der auf dem Server funktioniert, herausgesucht und [i]als String[/i] zurückgegeben. Nochmal der relevante Ausschnitt aus meinem Testscript (angepasst): > > [code=php]$lang['locale'] = [ > 'de_DE.utf8', > 'de_DE', > 'de_DE@euro', > 'de' > ]; > echo "<pre>Servereinstellung (de-locale): ". print_r(setlocale(LC_ALL, $lang['locale']), true) ."</pre>"; > > // Ausgabe: Servereinstellung (de-locale): de_DE.utf8[/code] > > > … sodass ich auf [inlinecode]locale_get_default()[/inlinecode] zurückgegriffen habe. > > Was du nicht machen musst, wenn ich nicht irre. > > > Final müssten wir noch die Sprachdateien anpassen und auf die neuen Abkürzungen umstellen. Also etwas Fleißarbeit. > > Das dürfte der leichteste, wenn auch arbeitsintensivste Teil sein. :-) > > > Könnte ich übernehmen - habe es schließlich auch verbockt - will aber zunächst wissen, wie Du die Lösung oben bewertest. > > Ohne jetzt deinen Code ausprobiert zu haben; wenn in deiner Funktion auch Zeitzonen berücksichtigt werden, passt das. "[i]Verbockt[/i]" hast du allerdings nichts. Die PHP-Doku bietet als Ersatz für [inlinecode]strftime[/inlinecode] den Einsatz von [inlinecode]date[/inlinecode] an, obwohl diese Funktion nicht alle Möglichkeiten von [inlinecode]strftime[/inlinecode] bietet. Dass das überhaupt so ist, ist entweder Fehler oder Absicht der PHP-Entwickler. Vielleicht wollen sie ja mittelfristig auch von [inlinecode]date[/inlinecode] weg. > > Tschö, Auge
E-mail notification on reply of this posting
OK - Submit
Preview