用PHP设置工作日到德语

时间:2016-12-20 17:04:59

标签: php mysql date datetime setlocale

我去了这些简单的MySQL查询:

$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();
}

输出为: 2016年12月22日星期三

有没有办法让这个工作日用德语?我还在使用setlocale(LC_TIME, 'de_DE');?!

2 个答案:

答案 0 :(得分:2)

可能是由于Windows机器,未检测到区域设置de_DE。而是使用deu_deu。另外,使用strftime根据区域设置格式化本地时间/日期:

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

打印:

Dienstag, 20.12.2016

您可以在manual中查看参考资料

更新:显示来自DB的日期

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

所以你的代码将是:

$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();
}

答案 1 :(得分:0)

setlocale(LC_TIME,&#39; de_DE&#39;,&#39; deu_deu&#39;);