以mysql日期时间格式转换法语格式的日期

时间:2011-11-08 14:28:52

标签: php datetime date

我想以日期格式(2011-11-08 06:00)转换法语格式的日期(08年11月11日06:00)。

我可以使用一个小函数转换法语格式日期的日期时间:

function dateFR($datetime) {
    setlocale(LC_ALL, 'fr_FR');
    return strftime('%d %B %Y à %Hh%M', strtotime($datetime));
}

但我不知道该怎么做。

感谢您的帮助。

5 个答案:

答案 0 :(得分:6)

怎么样?

date("Y-m-d H:i:s", strtotime($datetime));

啊,是的,我看到了问题。 strtotime仅转换英文文本(强调我的):

  

函数期望给出一个包含英语日期格式的字符串,并尝试将该格式解析为Unix时间戳

对于您的特定格式,您最好的选择可能是preg_match,因为似乎没有任何特定于语言环境的函数可以转换月份名称之类的内容。

答案 1 :(得分:3)

我写这篇文章是为了将日/月/年的法语日期转换为英文格式,并在MYSQL旁边。假设原始日期用“/”斜杠分隔

    private function dateToMySQL($date){
        $tabDate = explode('/' , $date);
        $date  = $tabDate[2].'-'.$tabDate[1].'-'.$tabDate[0];
        $date = date( 'Y-m-d H:i:s', strtotime($date) );
        return $date;
    }

这是非常基本的,并警告如果像白天一样丢失数字。

答案 2 :(得分:1)

如果你有数组或者multiArray我做了这个函数,那么juste你所有的日期输入都以name =" date _...."

开头
function dateFormatSql(&$array){
foreach ($array as $key=>&$value){
    if(!is_array($value)){
        if(preg_match("#^date_#", $key)){
            $tabDate = explode('/' , $value);
            $date  = $tabDate[2].'/'.$tabDate[1].'/'.$tabDate[0];
            $sqldate =  date('Y/m/d', strtotime($date));
            $array[$key] = $sqldate;
        }
    }else{
        dateFormatSql($value);
    }

}

}

答案 3 :(得分:0)

我知道问题很长一段时间,但由于我遇到了同样的问题,我提出了这个解决方案:

DateTime::createFromFormat('d/m/Y H:i',$datetime)->format('Y-m-d H:i')

但需要PHP 5.3。 有关http://php.net/manual/en/datetime.createfromformat.php

的更多信息

答案 4 :(得分:0)

尝试此代码:

function frToEn($date){
/* this function Convert a date in french format to english format
** EXP : 
**  French date  : 20-juin-2019
**  English date :  20-jun-2019
*/
$month=substr($s1=substr($date,strpos($date,'-')+1) , 0 , -(strlen($s1)-strpos($s1,"-")));
$year=substr($s1,strpos($s1,'-')+1);
$day=substr($date,0,strpos($date,'-'));

switch ($month) {
    case 'janvier': 
    case 'janv': 
    case 'jan':
        return $day."-jan-".$year;
        break;
    case 'février' :
    case'févr' :
    case'fév':
        return $day."-feb-".$year;
        break;
    case 'mars' :
    case'mar':
        return $day."-mar-".$year;
        break;
    case 'avril' :
    case'avr':
        return $day."-apr-".$year;
        break;
    case 'mai':
        return $day."-may-".$year;
        break;
    case 'juin':
        return $day."-jun-".$year;
        break;
    case 'juillet' :
    case'juil':
        return $day."-jul-".$year;
        break;
    case 'aout' :
    case'août':
        return $day."-aug-".$year;
        break;
    case 'septembre' :
    case'sept' :
    case'sep':
        return $day."-sep-".$year;
        break;
    case 'octobre' :
    case'oct':
        return $day."-oct-".$year;
        break;
    case 'novembre' :
    case'nov':
        return $day."-nov-".$year;
        break;
    case 'décembre' :
    case'déc':
        return $day."-dec-".$year;
        break;

    default:
        return false;
        break;
}}

对于mysql格式,请使用此功能:

date('Y-m-d',strtotime(frToEn($date))