2017-01-24 10 views
0

フランス語で区切られた日付をフルネームで表示する関数を記述しようとしています。日付PhPローカライズ

マイpost_meta(ワードプレス)、これを返します。これは、フランスのフォーマットD/M/Yで、私はロケールの完全な月表示の引数%Bstrftime()を試してみましたですが、私はこの機能を理解していない

array (size=3) 
'date' => string '09/02/2017' (length=10) 
'hours' => string '00' (length=2) 
'minutes' => string '00' (length=2) 

、完全な形式の日付が必要です。私は

$month = 02; 
echo strftime("%B", $month); 

関数の戻り値は常に「ジャンバー」(英語では1月)..私は週の修正これとディスプレイの日のためのアイデアを持っている

誰でも(文字を入力たとえば

、 )/日(数字)と月(文字)?

ありがとうございました。

答えて

1

strftime()には、数値だけでなく、タイムスタンプが必要です。

echo strftime("%B", time()+(60*60*24*10)); // now + 10 days to get into February 

それとも

$day = 1; 
$month = 2; 
$year = 2017; 

$time = mktime(0, 0, 1, $month, $day, $year); 
echo strftime("%B", $time); 
+0

あなたは ';'が必要で、年varは '$ year'ではなく' $ Year'です。とにかく理解され、有効です。 – OscarAkaElvis

+0

@OscarAkaElvisありがとうございます。タイプミスは私の死だろう – RiggsFolly

0

これを試してください:あなたの助けのための

<?php 
$var = array (
    'date' => '09/02/2017', 
    'hours' => '00', 
    'minutes' => '00' 
); 

$date = strtotime(substr($var['date'], 3, 2).'/'.substr($var['date'], 0, 2).'/'.substr($var['date'], 6, 4)); 

echo date('l', $date); //day of the week in letters format. It produces: Thursday 
echo '<br/>'; 
echo date('d', $date); //day number format. It produces: 09 
echo '<br/>'; 
echo date('F', $date); //month letters format. It produces: February 
0

感謝を!

私は、最初の方法で私の機能を書かれているし、これは将来的に誰を助けることができる場合、私は機能をポスト:)

を働いています!

function wb_get_event_date ($format) 
{ 
    global $post; 
    setlocale (LC_TIME, 'French'); 
    $event_date = get_post_meta($post->ID, 'wb_agenda_date', true); 
    $event_date_explode = explode("/", $event_date['date']); 
    $tim = mktime(0, 0, 1, $event_date_explode[1], $event_date_explode[0], $event_date_explode[2]); 

    switch ($format) { 
     case 'day_full': 
      echo utf8_encode(strftime("%A", $tim)); 
      break; 
     case 'day': 
      echo strftime("%d", $tim); 
      break; 
     case 'month': 
      echo utf8_encode(strftime("%B", $tim)); 
      break; 
     case 'year': 
      echo strftime("%Y", $tim); 
      break; 
    } 
}