一周的strtotime天没有用法语显示

时间:2013-11-10 14:08:03

标签: php strtotime

我的代码不会以法语输出一周中的几天。注意:我还尝试使用相同的结果翻译代码中的星期几(仅以英语输出)。

date_default_timezone_set('America/New_York'); 
setlocale (LC_TIME, 'fr_FR.utf8','fra');
$today = strtotime('Saturday 14:00');
$tomorrow = strtotime('Saturday 14:00');

$friday = strtotime('Friday 14:00');
$sunday = strtotime('Sunday 24:00');

$now = time();

if($now < $friday && $now > $sunday)
{

    $timeLeft = ($now > $today ? $tomorrow : $today) - $now;

    $hoursLeft = gmdate("G", $timeLeft);
    $minutesLeft = gmdate("i", $timeLeft);
    $secondsLeft = gmdate("s", $timeLeft);

    if($hoursLeft > 0)
    {
        echo $hoursLeft . ' heur';

        if($minutesLeft > 0)
        {
            echo ' et ' . $minutesLeft . ' minutes';
        }
    }
    else 
    {
        echo $minutesLeft . ' minutes et ' . $secondsLeft . ' seconde ';
    }
}
else

$date = date("l\, F j", strtotime("tomorrow"));

$day = date('l', strtotime('today'));

if ($day == 'Friday')
{
    if($now > strtotime('Friday 14:00'))
    {
        echo date('l, F j', strtotime('Tuesday'));
    }
    elseif($now < strtotime('Friday 14:00'))
    {
        echo date('l, F j', strtotime('Monday'));
    }
}
elseif ($day == 'Saturday' || $day == 'Sunday')
{
    echo date('l, F j', strtotime('Tuesday'));
} 

但是,如果我在上面使用它之外使用这个基本代码,它会正确显示:

setlocale (LC_TIME, 'fr_FR.utf8','fra'); 
echo (strftime("%A %d %B"));

如何让第一个块仅以法语输出?

1 个答案:

答案 0 :(得分:4)

date()无法识别位置,您应该使用strftime() ...并且它接受第二个$timestamp参数,与date()完全相同。只需将所有date()个匹配项替换为strftime()等效项,您就可以获得所需的内容。

因此...

替换:

$date = date("l\, F j", strtotime("tomorrow"));

使用:

$date = strftime('%A, %B %e', strtotime('tomorrow'));

替换:

$day = date('l', strtotime('today'));

使用:

$day = strftime('%A', strtotime('today'));

替换:

    echo date('l, F j', strtotime('Tuesday'));

使用:

    echo strftime('%A, %B %e', strtotime('Tuesday'));

替换:

    echo date('l, F j', strtotime('Monday'));

使用:

    echo strftime('%A, %B %e', strtotime('Monday'));

替换:

echo date('l, F j', strtotime('Tuesday'));

使用:

echo strftime('%A, %B %e', strtotime('Tuesday'));

就是这样! :)