将日期格式更改为荷兰语

时间:2014-05-02 05:43:53

标签: php date

我的英文日期格式,我想将其更改为荷兰语。

我的代码是:

$date_arr = explode('-', $eventPublishDate);
$datetime= mktime(0, 0, 0, $date_arr[1], $date_arr[2], $date_arr[0]);
$enterted_date  = date("jS F Y",$datetime);
$newDate = date("jS F Y", strtotime($eventPublishDate));

我尝试了以下代码,但无法找到日期的后缀[th,nd ...]

if ( setlocale(LC_ALL, 'nld_nld' ) || setlocale( LC_ALL, 'nl_NL' ) ) {
    $newDate =  strftime("%d  %B %Y", mktime(0, 0, 0, $date_arr[1], $date_arr[2], $date_arr[0]));
}

我需要输出:2014年第15届januari

请帮我解决问题。

5 个答案:

答案 0 :(得分:7)

好的,如果这不起作用:

setlocale(LC_TIME, 'NL_nl'); 
setlocale(LC_ALL, 'nl_NL'); 
echo strftime('%a %e %B %Y',time());

尝试将英语输出传递给Erik Jan这个旧的但有用的功能。它将返回简单的替换...

/** 
     * @author http://netters.nl/nederlandse-datum-in-php 
     */ 
    function nlDate($datum){ 
      /* 
       // AM of PM doen we niet aan 
       $parameters = str_replace("A", "", $parameters); 
       $parameters = str_replace("a", "", $parameters); 

      $datum = date($parameters); 
     */ 
       // Vervang de maand, klein 
      $datum = str_replace("january",     "januari",         $datum); 
       $datum = str_replace("february",     "februari",     $datum); 
      $datum = str_replace("march",         "maart",         $datum); 
       $datum = str_replace("april",         "april",         $datum); 
       $datum = str_replace("may",         "mei",             $datum); 
       $datum = str_replace("june",         "juni",         $datum); 
      $datum = str_replace("july",         "juli",         $datum); 
      $datum = str_replace("august",         "augustus",     $datum); 
       $datum = str_replace("september",     "september",     $datum); 
       $datum = str_replace("october",     "oktober",         $datum); 
       $datum = str_replace("november",     "november",     $datum); 
      $datum = str_replace("december",     "december",     $datum); 

      // Vervang de maand, hoofdletters 
     $datum = str_replace("January",     "Januari",         $datum); 
       $datum = str_replace("February",     "Februari",     $datum); 
      $datum = str_replace("March",         "Maart",         $datum); 
       $datum = str_replace("April",         "April",         $datum); 
       $datum = str_replace("May",         "Mei",             $datum); 
       $datum = str_replace("June",         "Juni",         $datum); 
      $datum = str_replace("July",         "Juli",         $datum); 
      $datum = str_replace("August",         "Augustus",     $datum); 
       $datum = str_replace("September",     "September",     $datum); 
       $datum = str_replace("October",     "Oktober",         $datum); 
       $datum = str_replace("November",     "November",     $datum); 
      $datum = str_replace("December",     "December",     $datum); 

      // Vervang de maand, kort 
       $datum = str_replace("Jan",         "Jan",             $datum); 
       $datum = str_replace("Feb",         "Feb",             $datum); 
       $datum = str_replace("Mar",         "Maa",             $datum); 
       $datum = str_replace("Apr",         "Apr",             $datum); 
       $datum = str_replace("May",         "Mei",             $datum); 
       $datum = str_replace("Jun",         "Jun",             $datum); 
       $datum = str_replace("Jul",         "Jul",             $datum); 
       $datum = str_replace("Aug",         "Aug",             $datum); 
       $datum = str_replace("Sep",         "Sep",             $datum); 
       $datum = str_replace("Oct",         "Ok",             $datum); 
     $datum = str_replace("Nov",         "Nov",             $datum); 
       $datum = str_replace("Dec",         "Dec",             $datum); 

      // Vervang de dag, klein 
     $datum = str_replace("monday",         "maandag",         $datum); 
       $datum = str_replace("tuesday",     "dinsdag",         $datum); 
       $datum = str_replace("wednesday",     "woensdag",     $datum); 
     $datum = str_replace("thursday",     "donderdag",     $datum); 
     $datum = str_replace("friday",         "vrijdag",         $datum); 
       $datum = str_replace("saturday",     "zaterdag",     $datum); 
      $datum = str_replace("sunday",         "zondag",         $datum); 

      // Vervang de dag, hoofdletters 
       $datum = str_replace("Monday",         "Maandag",         $datum); 
       $datum = str_replace("Tuesday",     "Dinsdag",         $datum); 
       $datum = str_replace("Wednesday",     "Woensdag",     $datum); 
     $datum = str_replace("Thursday",     "Donderdag",     $datum); 
     $datum = str_replace("Friday",         "Vrijdag",         $datum); 
       $datum = str_replace("Saturday",     "Zaterdag",     $datum); 
      $datum = str_replace("Sunday",         "Zondag",         $datum); 

      // Vervang de verkorting van de dag, hoofdletters 
       $datum = str_replace("Mon",            "Maa",             $datum); 
       $datum = str_replace("Tue",         "Din",             $datum); 
       $datum = str_replace("Wed",         "Woe",             $datum); 
       $datum = str_replace("Thu",         "Don",             $datum); 
       $datum = str_replace("Fri",         "Vri",             $datum); 
       $datum = str_replace("Sat",         "Zat",             $datum); 
       $datum = str_replace("Sun",         "Zon",             $datum); 

      return $datum; 
  }

答案 1 :(得分:6)

使用intl模块:

$fmt = new IntlDateFormatter(
    'nl_NL',
     IntlDateFormatter::GREGORIAN,
     IntlDateFormatter::NONE
);
echo $fmt->format(mktime(null, null, null, 1, 15, 2014));

// output: 15 januari 2014

答案 2 :(得分:1)

创建新数组

$lang = array();
$lang['en'] = ['january','februari','march','april','may','june','july','august','september','october','november','december'];
$lang['nl'] = ['januari','februari','maart','april','mei','juni','juli','augustus','september','oktober','november','december'];

将其替换为荷兰语格式

ucfirst(str_replace($lang['en'], $lang['nl'], strtolower($datum)));

答案 3 :(得分:0)

尝试更改此行:

$enterted_date  = date("jS F Y",strtotime($datetime));
希望这可以帮到你。

答案 4 :(得分:0)

您可以使用您的语言创建一个包含月份和日期的数组,并使用foreach循环替换值:

$arr = array('Maa', 'Din','Woe','Don', ...);
$date = date('D M Y');

然后:

foreach($arr as $k => $V){
   $date = str_replace($k, $v, $date);
}
echo $date;

这是我案例的第二个解决方案(第一个是@gontrollez)。为我设置语言环境根本不起作用,这个带数组的解决方案在我看来并不优雅。