2016-12-20 8 views
0

J'ai aller ces simples requêtes MySQL:Set semaine en Allemand en PHP

$sql->setQuery("SELECT * FROM $db_table"); 

for ($i = 0; $i < $sql->getRows(); $i++) { 
    $id = $sql->getValue("id"); 
    $date = $sql->getValue("date"); 

    setlocale(LC_TIME, 'de_DE'); 

    $date = date('l, d.m.Y'); 

    echo $date; 

    $sql->next(); 
} 

La sortie est: mercredi, 22.12.2016.

Existe-t-il un moyen d'obtenir le jour de la semaine en allemand? J'utilise toujours setlocale(LC_TIME, 'de_DE');?!

+0

Ermmmm 'ce jour $ = date ('l, dmY'),' sera en fait imprimer la date du système en passant, pas la date à laquelle vous avez obtenu de la base de données – RiggsFolly

Répondre

0

setlocale (LC_TIME, 'de_DE', 'deu_deu');

1

Cela peut être dû à la machine Windows, les paramètres régionaux de_DE ne sont pas détectés. Utilisez plutôt deu_deu. En outre, utiliser strftime qui formate une date/heure locale en fonction de la configuration locale:

setlocale(LC_TIME, 'de_DE', 'deu_deu'); 
$date = strftime('%A, %d.%m.%Y'); 
echo $date; 

Cette impression:

Dienstag, 20.12.2016 

Vous pouvez voir dans le manual pour référence


Mise à jour : Pour afficher la date à partir de la base de données

$date = strftime('%A, %d.%m.%Y', strtotime($date)); 

donc votre code sera:

$sql->setQuery("SELECT * FROM $db_table"); 

for($i=0;$i<$sql->getRows();$i++) 
{ 

$id = $sql->getValue("id"); 
$date = $sql->getValue("date"); 

setlocale(LC_TIME, 'de_DE', 'deu_deu'); 
$date = strftime('%A, %d.%m.%Y', strtotime($date)); 
echo $date; 

$sql->next(); 
} 
+0

Il imprime la date actuelle mais j'ai enregistré une date dans la base de données. Y a-t-il un moyen de le "connecter"? –

+0

@MarcusBauer Vérifiez la réponse mise à jour! $ date = strftime ('% A,% d.% m.% Y', strtotime ($ date)); ' – Thamilan

+1

Hmmm ce n'était pas vraiment, occupé à vérifier les faits sur les codes de paramètres régionaux pour l'Allemagne et n'a pas vu le vôtre. J'ai donc supprimé et UV à vous. J'espère que nous avons tous les deux raison! – RiggsFolly