MyBB.de Forum

Normale Version: Datum in englisch?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Aloha,

Ich habe ein neues MYBB 1.8.20 installiert, verwende Sprachpaket Deutsch-Du und im Postbit steht "Registriert seit: May 2019". Was muss ich wo anpassen, damit das korrekt in deutsch angezeigt wird? Smile

LG
Die Einstellungen befinden sich Im ACP unter Konfiguration > Einstellungen > Datums- und Zeitformat.
Z.B.:
Datumsformat: d.m.Y
Zeitformat: H:i
Format des Registrierungsdatums: M Y

Aber dies sind nur die Parameter für die date-Funktion. Bei dir scheint das Problem ganz woanders zu liegen.
Hast du noch weitere falsche Übersetzungen, oder ausschließlich bei "Registriert seit:"?
Schaue mal in deine Templates, ob dort tatsächlich eine Variable steht und kein fixer Text (, der vielleicht versehentlich hineinkopiert wurde).

Was passiert mit einem neu angelegtem Benutzer (jetzt haben wir Juni). Bleibt es bei "May" oder wird englisches "June" angezeigt?

[ExiTuS]
Also mir ist noch keine falsche Übersetzung ansonsten aufgefallen, sagen wir es so. Wink

In meinem Template steht an dieser Stelle ganz brav
Code:
{$lang->postbit_joined} {$post['userregdate']}

Ich habe einen neuen Benutzer angelegt, wenn der postet, steht bei ihm folgerichtig "Registriert seit: Jun 2019".
MyBB verwendet die PHP date() Funktion, welche die Namen der Wochentage und Monate immer auf englisch ausgibt.
Siehe auch diesen Thread:
https://www.mybb.de/forum/thread-12803.html

Ich habe bei uns in der erwähnten my_date Funktion (beim my_date Hook) etwas Code hinzugefügt, der die Namen übersetzt, wenn ein deutsches Sprachpaket ausgewählt ist.
//deleted


//Edit: achso, okay.

PHP-Code:
<?php
$timestamp 
time();
$datum date("D.F.Y - H:i"$timestamp);
echo 
$datum;
?>

würde wieder
Tue.June.2019 - 16:26
ausgeben.

Aber du hast ja bereits eine Lösung programmiert  Big Grin Ansonsten wäre ich simpel über ein Array gegangen. Hätte mir nen asoziatives Array gebaut, die Wochentage auf Englisch abgefangen und dann über das Array halt den richtigen Wert ausgegeben.

oder halt:
PHP-Code:
<?php
// Beispielausgabe vor Umstellen auf Deutsch
echo strftime("%A, der %e. %B %G"strtotime("now"));
echo 
"<p>Es erfolgt nun die Umstellung auf dt. Datum:";
setlocale (LC_ALL'de_DE@euro''de_DE''de''ge');
echo 
strftime("%A, der %e. %B %G"strtotime("now"));
?>
https://www.php-kurs.com/php-datumsausgabe-deutsch.htm
Oh, vielen Dank, ich verstehe - nein, ich wollte jetzt gar kein großes Ding draus machen. Wenn es nur auf Englisch geht, dann stelle ich das Registrierdatumsformat einfach auf "d.m.Y" und dann wird eben ein normales Datum genommen. Smile
Okay, 1. Lösung hat doylecc bereits gepostet, eine weitere ich und ich hatte gestern die andere Lösung (3) noch vergessen. Falls es irgendwem, irgendwann mal weiterhilft, weshalb auch immer (gestern schnell zusammengeschrieben, aber vergessen zu posten Big Grin ) :

PHP-Code:
$monate = [
    
"January" => "Januar",
    
"February" => "Februar",
    
"March" => "März",
    
"April" => "April",
    
"May" => "Mai",
    
"June" => "Juni",
    
"July" => "Juli",
    
"August" => "August",
    
"September" => "September",
    
"October" => "Oktober",
    
"November" => "November",
    
"December" => "Dezember",
    ];

$datum date("F Y"time());

foreach (
$monate AS $key => $monat) {
    if (
strpos($datum$key) !== false) {
    
$datum str_replace($key$monat$datum);
    }
}

var_dump($datum); 

klappt auch
Ich mache es etwas knackiger und vor allem effizienter:

PHP-Code:
<?php
$dateF_de 
= array("""Januar""Februar""M&auml;rz""April""Mai""Juni""Juli""August""September""Oktober""November""Dezember");
$dateFY $dateF_de[date("n")] . " " date("Y");

echo 
$dateFY# Juni 2019
?>

Wichtig hier: Das erste Element im Array (Index: 0) bleibt leer; die Inhalte fangen bei 1 an.

[ExiTuS]
(05.06.2019, 15:32)[ExiTuS] schrieb: [ -> ]Ich mache es etwas knackiger und vor allem effizienter:

PHP-Code:
<?php
$dateF_de 
= array("""Januar""Februar""M&auml;rz""April""Mai""Juni""Juli""August""September""Oktober""November""Dezember");
$dateFY $dateF_de[date("n")] . " " date("Y");

echo 
$dateFY# Juni 2019
?>

Wichtig hier: Das erste Element im Array (Index: 0) bleibt leer; die Inhalte fangen bei 1 an.

[ExiTuS]

Auch geil Big Grin gut gelöst.. oder du nimmst ein assoziatives Array.. sollte auch klappen dann muss Index 0 nicht umgangen werden bzw leergelassen werden. Find ich sauberer, ansonsten top.
Dabei bietet PHP bereits von Haus aus eine Lösung: setlocale und strftime
Seiten: 1 2