我的代码不会以法语输出一周中的几天。注意:我还尝试使用相同的结果翻译代码中的星期几(仅以英语输出)。
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"));
如何让第一个块仅以法语输出?
答案 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'));
就是这样! :)