php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 1,00 durchschnittlich.
Alt 30.03.2007, 03:36  
Erfahrener Benutzer
 
Registriert seit: 21.07.2003
Beiträge: 340
PHP-Kenntnisse:
Fortgeschritten
Simbo
Standard setlocale... date!=strftime???

PHP-Code:
<?
header
("Content-Type: text/plain; charset=utf-8");
setlocale(LC_ALL"de_DE.UTF8");
echo 
date("F")."\n".strftime("%B");
?>
liefert mir:

Code:
March
März
Sollte sich setlocale nicht auch auf date() auswirken?
Simbo ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.03.2007, 03:45  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Nö, wer sagt das? Das Manual auf jeden Fall nicht ^^
Zitat:
Zitat von Manual
Um Datumsangaben in anderen Sprach-/Zeitzonen-Formaten auszugeben, sollten Sie die Funktionen setlocale() und strftime() benutzen.
date()
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 30.03.2007, 03:50  
Erfahrener Benutzer
 
Registriert seit: 21.07.2003
Beiträge: 340
PHP-Kenntnisse:
Fortgeschritten
Simbo
Standard

hm... also ich spiel hier grade an nem Template für LoudBlog rum und da wird eben date() zur Datumsformatierung verwendet. Und ich hätte gerne ausgeschriebene Monats- und Tagesnamen.

Wordpress benutzt auch die date()-Funktion zur Datumsformatierung und da gibts auch deutsche Namen. Dummerweise hab ich bisher noch nicht rausgefunden, was die da anders machen...
Simbo ist offline  
Alt 30.03.2007, 03:55  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Sicher, dass sie nicht einfach beides verwenden? Sprich: date() für Zahlenangaben (Uhrzeit und co) und strftime() für Daten-Namen?

Wo ist denn das Problem, wenn du nun strftime für die Namen verwendest? Es geht, was will man mehr? ^^ Einmal am Anfang setlocale(..) und dann einfach nur noch strftime() und gut is.

Übrigens: de_DE.utf8 kann auf Windows-Rechnern zu Problemen führen (bei mir hat ers zB völlig ignoriert )
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 30.03.2007, 04:04  
Erfahrener Benutzer
 
Registriert seit: 21.07.2003
Beiträge: 340
PHP-Kenntnisse:
Fortgeschritten
Simbo
Standard

das problem ist, dass ich in der Template-Sprache von LoudBlog keine PHP Befehle einbinden kann und ich das Datum mit beispielsweise folgendem Befehl ausgeben lasse:

Code:
<lb:posted format="Y-m-d" />
...und da geht eben nur die date() Formatierung, sonst hätte ich schon längst auf strftime zurückgegriffen...

Und wie ich eben herausgefunden habe arbeitet Wordpress auch nur mit Arrays der Namen, die sich dann die korrekte Übersetzung aus den mo/po-Sprachdateien holen...

Na dann vergess ich das einfach mit meinen ausgeschriebenen Namen und nehm ne andere Formatierung...

Trotzdem danke...
Simbo ist offline  
Alt 30.03.2007, 04:14  
Erfahrener Benutzer
 
Registriert seit: 03.03.2007
Beiträge: 112
Schnulli
Standard

Zitat:
Zitat von KingCrunch
Übrigens: de_DE.utf8 kann auf Windows-Rechnern zu Problemen führen (bei mir hat ers zB völlig ignoriert )
Unter windows funktioniert "DEU" oder auch "german", ist dann aber immer noch nicht utf-8
Schnulli ist offline  
Alt 30.03.2007, 13:54  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

.. oder auch de_DE Aber (findet man in den Comments zu setlocale) die gleichzeitige Angabe des Zeichensatzes macht wohl Ärger. In den Fall nachträglich auf utf8 setzen ^^
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 30.03.2007, 14:39  
Erfahrener Benutzer
 
Registriert seit: 03.03.2007
Beiträge: 112
Schnulli
Standard

de_DE funktioniert bei mir unter Windows XP nicht.
Wird auch nicht bei http://msdn.microsoft.com/library/de...ry_strings.asp aufgeführt.
Wie setzt man ein locale nachträglich auf utf?
Schnulli ist offline  
Alt 30.03.2007, 15:17  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Hab mir die weiterführenden Links nicht angeschaut, aber ich habe es mit de_DE ausprobiert und es kam "M?rz" raus (naja, utf-8-Problem halt ). In den Comments im Manual empfiehlt derjenige die Verwendung von iconv() zur nachträglichen Konvertierung. Spricht ja auch nix dagegen

Zitat:
Zitat von Manual
string iconv ( string in_charset, string out_charset, string str )
PHP-Code:
echo iconv("ISO-8859-1","UTF-8",$datestring); 
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 30.03.2007, 15:59  
Erfahrener Benutzer
 
Registriert seit: 03.03.2007
Beiträge: 112
Schnulli
Standard

PHP-Code:
<?php
echo phpversion(), "\n";
echo 
php_uname(), "\n";
echo 
php_sapi_name(), "\n";
var_dump(setlocale(LC_ALL"de_DE"));
echo 
strftime("%B\n");
var_dump(setlocale(LC_TIME"de_DE"));
echo 
strftime("%B\n");
?>
Zitat:
5.2.0
Windows NT LDX0102 5.1 build 2600
cli
bool(false)
March
bool(false)
March
Was ist bei Dir anders, wenn de_DE unter windows funktioniert?
Schnulli ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
setlocale LC_TIME PHP Tipps 2005 3 10.01.2005 14:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
setlocale date, strftime märz, date setlocale, http://www.php.de/php-tipps-2007/43816-setlocale-date-strftime.html, setlocale date(), php date strftime, php strftime märz, php date setlocal, php setlocale format date, php datetime strftime, php datum formatiert ausgeben korrekte sprache, setlocale wird ignoriert, php strftime setlocale, strftime setlocale, php setlocale märz, loudblog setlocale, loudblog date format in german, php strftime oder date, strftime %b märz, php strftime monat utf8

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:44 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.