PHP打印法语月份?

时间:2014-01-29 12:11:46

标签: php date

我想用法语打印日期,如:

le 25 février 2014

这是我使用的PHP代码,但它无效。

setlocale(LC_ALL, 'fr_FR');
echo strftime("%A, %e %B, %Y");
echo "<br>";
setlocale(LC_TIME, "fr_FR");
echo strftime(" in French %A, %e %B, %Y and");

输出:

January 29, 2014
Wednesday, 29 January, 2014
in French Wednesday, 29 January, 2014 and

6 个答案:

答案 0 :(得分:5)

这有效(已测试)

将打印:

当前日期:2014年1月29日星期三
法语日期=&gt; Mercredi 29 Janvier 2014

你只需要调整它就可以按照你希望的方式对其进行格式化。

<?php
// enter date format 2011-01-31 (Y-m-d)
function date_in_french ($date){
$week_name = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
$month_name=array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août",
"Septembre","Octobre","Novembre","Décembre");

$split = preg_split('/-/', $date);
$year = $split[0];
$month = round($split[1]);
$day = round($split[2]);

$week_day = date("w", mktime(12, 0, 0, $month, $day, $year));
return $date_fr = $week_name[$week_day] .' '. $day .' '. $month_name[$month] .' '. $year;
}
$currentDate=date('Y-m-d');
echo "Current Date: ";
echo date('D')." ".date('d')." ".date('M')." ".date('Y');
echo "<br>";
echo "Date in French => ".date_in_french($currentDate);

答案 1 :(得分:2)

首先,您必须设置区域设置.. en UTF-8

        eventClick: function(calEvent) {
            if (calEvent.googleCalendarId) {
                var edit_url = "/url_to_get_to_the_google_calendar/" + calEvent.googleCalendarId + "/";
                window.open(edit_url,"_self");
                return false;
            }
        },

如果您的服务器不接受它,您必须使用数组并替换..

答案 2 :(得分:1)

您正在寻找使用case

的功能
function getmounth($_mountnmbr)
{
switch ($_mountnmbr) {
    case '01':
        return 'Janvier';
        break;
    case '02':
        return 'Février';
        break;
    case '03':  
        return 'Mars';
        break;
    case '04':  
        return 'Avril';
        break;
    case '05':
        return 'Mai';
        break;
    case '06':  
        return 'Juin';
        break;
    case '07':  
        return 'Juillet';
        break;
    case '08':
        return 'Août';
        break;
    case '09':  
        return 'Septembre';
        break;
    case '10':  
        return 'Octobre';
        break;
    case '11':
        return 'Novembre';
        break;
    case '12':  
        return 'Décembre';
        break;
  }
}

答案 3 :(得分:0)

您的系统可能没有法语翻译。我过去也遇到过这个问题。对于Linux / Ubuntu,这里是如何添加区域设置:https://askubuntu.com/questions/76013/how-do-i-add-locale-to-ubuntu-server

答案 4 :(得分:0)

您也可以尝试空字符串。它应该自动使用您操作系统的语言(当然,只有当您的操作系统是法语时才能使用。)

setlocale(LC_TIME, '');

答案 5 :(得分:-2)

我通常会这样做str_replace(对于德语,因为我不知道新鲜事。)

$date = str_replace(
    array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
   array('Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'),
   $date
);