2014-09-29 2 views
1
<table class="projects"> 
    <tr><td class="title" colspan="2">Vergangene Projekte</td></tr> 

<?php $query = "SELECT * FROM posts WHERE project = 1 && project_date <= CAST(CURRENT_TIMESTAMP AS DATE)ORDER BY date DESC"; 
     if(!$query){ 
     die("Konnte nicht mit Data Base verbinden");} 
     $result = mysqli_query($connection, $query); 

while($row = mysqli_fetch_array($result)){ 

     setlocale(LC_ALL, 'de_DE'); // using german language works 
     $premier = new DateTime($row['project_date']); 
     echo "<tr><td>" .strftime("%B", $premier->getTimestamp()). "</td><td class=\"project_title\"> 
     <a class=\"title\" href=\"projekt_info.php?projekt=" .urlencode($row["id"]) ."\">" 
     .$row['title']. "</a></td></tr>";} 
?> 
</table> 

ОК Я изменил код, чтобы показать все его, а также вставил предложения, и теперь он работает просто отлично! СовершенныеКак изменить язык перевода?

Приветствия Chris

+0

Можете ли вы попробовать добавить 'setlocale (LC_TIME, 'fr_FR');' –

+0

Плюс, это ваш полный код? Если это так, есть немало недостающих вещей. Табличные теги, например, выборка данных. –

+0

и убедитесь, что язык 'fr_FR' действительно установлен в машине. 'locale -a' – Ghost

ответ

3

Во-первых убедитесь, что на самом деле fr_FR установлен на компьютере для вашего сценария использования.

Попробуйте использовать locale -a на вашем терминале для проверки.

Во-вторых, поскольку DateTime работает только на английском языке, используйте strftime(), и вы используете его без метки времени.

setlocale(LC_ALL, 'fr_FR'); 
$premier = new DateTime($row['project_date']); 
echo "<tr><td>" .strftime("%B", $premier->getTimestamp()). "</td><tr>"; 
            // ^^ feed the timestamp 

Sidenote: как сказал Фред в комментариях, это только фрагмент, потому что разметка откусила (недостающие тег и т.д., и, скорее всего, это внутри цикла).

0

Немного поздно, но я предпочитаю использовать IntlDateFormatter, которая системно-языковой независим и вывод гарантированно будет в кодировке UTF-8:

$datefmt = new IntlDateFormatter('de_DE', NULL, NULL, NULL, NULL, 'LLLL'); 
while($row = mysqli_fetch_array($result)) { 
    # ... 
    echo "<tr><td>" . $datefmt->format($premier). "</td>"/*...*/; 
    # ... 

(см документацию Icu в для a custom format - последний аргумент IntlDateFormatter конструктора)

Смежные вопросы