2012-03-15 7 views
6

こんにちは私はPHPを使用しています。私は整数値(1-12)を渡し、対応する月の名前を取得したいと思います。私は1ヶ月の名前の配列を初期化することで自分自身をしなければならない。は、整数値を与えることによって月の名前を得る方法です。PHP

iは整数値PHP

<?php 
    function get_month_name($inp) 
    { 
    return date("F", strtotime(date("d-$inp-y"))); 
    } 
    $month_name = get_month_name("1"); 
    echo $month_name; 
    ?> 

答えて

20
echo date('F', strtotime("2012-$int-01")); 
+0

を確認してください。実装が簡単で簡単です! – Rossco

4

使用このコードで

$month_name = get_month_name(1); 

echo $month_name ; //echo january 

おかげのようにやりたいです組み込みの方法は

$monthInt = 3; 
$monthName = DateTime::createFromFormat('m', $monthInt)->format('F'); 

PHPに日付オブジェクトを作成せずに日付名を取得する方法があればうれしいです。

2
function get_month_name($month) 
{ 
    $months = array(
     1 => 'January', 
     2 => 'February', 
     3 => 'March', 
     4 => 'April', 
     5 => 'May', 
     6 => 'June', 
     7 => 'July', 
     8 => 'August', 
     9 => 'September', 
     10 => 'October', 
     11 => 'November', 
     12 => 'December' 
    ) 

    return $months[$month]; 
} 
+0

私はこれを行うことができます、私は尋ねました、これを行うためのPHPの組み込み関数があります –

5

別を与えることによって、月名を取得するには、事前

1
$month = 1; //month in numeric 
echo date('F', mktime(0, 0, 0, $month, 10)); //print January 
0

あなたは月の秒数の平均値(2628000)により、月の数を乗算し、それがどこか月の途中で常にあるので、15日間離れて取ることで(1970年)Unixの時間を構築することができます。だから、これはうまく動作し、不要なオーバーヘッドを回避:

function month_name($i) { 
    return date('F', $i * 2628000 - 1314000); 
} 

実際の日付(あなたは「F」のための「D FY」を置き換えている場合は)あなたは1から12まで$私のために1970年1月16日から1970年12月16に変わります( - 7月曜日与える - 1と日曜日)曜日名を取得するために同様のトリックを行うことができます。

function day_name($i) { 
    return date('l', $i * 86400 + 302400); 
} 
0

は、パラメータとして日付要素を取る関数はmktime()を使用します。

<?php 
$month_number= 3; 
$month_name = date("F", mktime(0, 0, 0, $month_number, 10)); 
echo $month_name; 
?> 

出力: 機能はmktimeで

()、パラメータが時間、分、秒、月、日、年です。

詳細については、http://php.net/manual/en/function.mktime.php

関連する問題