将4种不同语言的缩写月份转换为相应的月份编号

时间:2018-01-18 11:54:34

标签: php laravel datetime php-carbon

我有几个月的英语,德语,法语和西班牙语缩写,我必须将其作为数字返回

所以' dic'将是12 // es

或' avr'将是4 // fr

我也有使用的语言环境

这是输入的样子

<?php return array (
'de' => array (
    'Jan' => 'Jan',
    'Feb' => 'Feb',
    'März' => 'Mar',
    'Apr' => 'Apr',
    'Mai' => 'May',
    'Juni' => 'Jun',
    'Juli' => 'Jul',
    'Aug' => 'Aug',
    'Sep' => 'Sep',
    'Okt' => 'Oct',
    'Nov' => 'Nov',
    'Dez' => 'Dec',
),
'es' => array(
    'ene' => 'Jan',
    'feb' => 'Feb',
    'mar' => 'Mar',
    'abr' => 'Apr',
    'may' => 'May',
    'jun' => 'Jun',
    'jul' => 'Jul',
    'ago' => 'Aug',
    'sept' => 'Sep',
    'oct' => 'Oct',
    'nov' => 'Nov',
    'dic' => 'Dec',
),
'fr' => array(
    'janv' => 'Jan',
    'Feb' => 'Feb',
    'mars' => 'Mar',
    'avr' => 'Apr',
    'mai' => 'May',
    'juin' => 'Jun',
    'juil' => 'Jul',
    'aout' => 'Aug',
    'sept' => 'Sep',
    'oct' => 'Oct',
    'nov' => 'Nov',
    'dec' => 'Dec',
),
);

我一直在搞乱

setLocale(LC_ALL,'de_DE.UTF-8)
//"de_DE.UTF-8"
echo  strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));
//"Freitag 22 Dezember 1978"

我使用Carbon来解析日期,即

\Carbon::parse('Jan');

会给我

 Carbon\Carbon {#1866
 +"date": "2018-01-18 00:00:00.000000",
 +"timezone_type": 3,
 +"timezone": "UTC",}

我希望能够对其他语言做同样的事情。

1 个答案:

答案 0 :(得分:0)

你可以这样做:

$month = array_search('März', array_keys($months['de'])) + 1;
now()->month($month);

这会给你:

Illuminate\Support\Carbon @1521374393 {#871
    date: 2018-03-18 11:59:53.0 UTC (+00:00),
}