2011-01-06 8 views
0

可能性の重複に短い月名を変換:
convert month from name to numberPHPは、月数

私はすべてのためのシンプルな(まだ面白い)クエリを持っています。

私が先行ゼロでなど月、2月、同様に今、私は月に数(月のすなわち、数値表現)に変換する必要があり、簡単に言えば、

例月名を取得しています: "月" から "01"、 "12月" から "12" など

誰でも知っている、配列を使用せずに、この、を達成するためにどのように

おかげ

+2

なぜアレイを使用しないのですか? – StasM

+0

@StasM:どのように複雑なものが得られるのかを知る必要があります。私は配列を使って、それはちょうど "ケーキ"になりますが、それ以外の方法であることを知っています。 –

答えて

15
$month = 'Feb'; 
echo date('m', strtotime($month)); 

strtotimeは、2011年2月6日15:15:00(執筆時点で)のタイムスタンプに、 "Feb"を変換して、指定された文字列からできるものを取り出し、現時点の空白を埋めます。 date('m')は、このタイムスタンプをフォーマットし、月番号のみを出力します。

これは実際には31日、たとえば、上の問題を引き起こす可能性がありますので、あなたは確かにこれらの空白を埋める必要があります。

echo date('m', strtotime("$month 1 2011")); 
1

のstrtotimeは、トリックを行います。

例:のstrtotime上

$monthName = 'Jan'; 

echo date('m', strtotime($monthName)); 
+0

これはPHP 7では機能しません。 'Feb'と 'Mar'はともに03を返します。 – ryantxr

2
$date = strtotime ("Jan"); 
print date("m", $date); 

より:PHP: strtotime - Manual日の

の詳細:あなたはすでにあなたの日付を持っていることを考えるとPHP: date - Manual

+0

PHP 7では動作しません。 'Feb'と 'Mar'はどちらも03を返します。 – ryantxr

1

$date = 'Jun'; 
$month = date('m', strtotime($date)); 
+0

これはPHP 7では動作しません。 2月と3月はともに03を返します。 – ryantxr

-1

を参照してください。

$mon = 'Aug'; 
$month = date("F",strtotime($mon)); 

私は "12月" を取得?私は一日と一年でこれを配置する場合

しかし、それが正常に変換されます。

$mon = 'Aug'; 
$month = date("F d Y",strtotime("$mon 31, 2011")); 

それが動作します。

PHPバージョン5.1を実行しています。日、年と2

1

使用これは罰金ひそかます:

$mon = 'Feb'; 
$month = date("F d Y",strtotime("$mon 31, 2010")); 

それが正常に動作します。