Php:更改日期/strftime/strtotime 中的语言

Jer*_*enM 3 php date strtotime strftime setlocale

我正在尝试将我的第二段代码的输出设为荷兰语。第一个代码给出了正确的输出,但是是英文的。我试图用荷兰语获得它,但通常我最终得到的是 01-01-1970、12-12-2015 或什么都没有。代码应该在本周的下周五给出,除非是过去的周一,否则下周就是周五。

我的工作代码是英文的。

<?php
$d = strtotime('today');

switch ($d) {
    case strtotime('monday'):
    case strtotime('friday'):
    case strtotime('saturday'):
    case strtotime('sunday'):
        $ff = strtotime('next friday');
        $ffn = date('l d M', $ff);
        echo $ffn;
    break;
    case strtotime('tuesday'):
    case strtotime('wednesday'):
    case strtotime('thursday'):
        $ff = strtotime('next friday' . '+ 7days');
        $fft = date('l d M', $ff);
        echo $fft;
    break;
    default:
        echo "Something went wrong";
}
?>
Run Code Online (Sandbox Code Playgroud)

我的代码给出了荷兰语输出,但日期错误(它给出了今天的日期,而不是下周五/下周周五。)

顺便说一句,这是我在这里问的第一个问题,所以我可能有点含糊不清;)

Yas*_*lev 5

只需使用 strftime() 和 set_locale() 函数输出日期。如果正确,则无需更改您的代码逻辑。

http://php.net/manual/en/function.strftime.php

http://php.net/manual/en/function.setlocale.php

<?php
$d = strtotime('today');

$format = '%A %d %b';
setlocale(LC_TIME, 'NL_nl');    
setlocale(LC_ALL, 'nl_NL');

switch ($d) {
    case strtotime('monday'):
    case strtotime('friday'):
    case strtotime('saturday'):
    case strtotime('sunday'):
        $ff = strtotime('next friday');
        $ffn = strftime($format, $ff);
        echo $ffn;
    break;
    case strtotime('tuesday'):
    case strtotime('wednesday'):
    case strtotime('thursday'):
        $ff = strtotime('next friday' . '+ 7days');
        $fft = strftime($format, $ff);
        echo $fft;
    break;
    default:
        echo "Something went wrong";
}
?>
Run Code Online (Sandbox Code Playgroud)