1

私のコードはフランス語で曜日を出力しません。注: コード内の曜日を翻訳しようとしても、同じ結果が得られました (出力は英語のみ)。

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"));

最初のブロックをフランス語のみで出力するにはどうすればよいですか?

4

1 に答える 1

5

date()は場所を認識しないstrftime()ため、そのために使用する必要があります...そして、2番目の$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'));

そしてそれだけです!:)

于 2013-11-10T14:43:29.190 に答える