2012-05-10 9 views
-1

3つの異なる変数に格納されている日付、月、年の変数を配列に追加するためのコードを記述しましたが、implode関数を使用して適切な日付形式に変更しました。期待どおりの出力を示していません。次のように コードである:ここでPHPの日付変数

$year = 2012; 
$month1 = $_POST["month1"]; 
$date = $_POST["date"]; 
$array[] = "{$year}{$month1}{$date}"; 
$imp = implode('/',$array); 
echo $imp; 

$date$month1は、フォームから取得され.... 出力20121220としてではなく、2012/12/20として表示されます。

上記のコードに問題がありますか?

+2

$配列=配列($年、$のMONTH1、$日付を言いたい[]

ずに割り当てられています。 $ array [] = "{$ year} {$ month1} {$ date}"ではなく、 –

+4

配列処理関数と日付関数について読むことをお勧めします –

+1

基本的な文字列操作についてもお読みになることをお勧めします。 –

答えて

5
$array[] = "{$year}{$month1}{$date}"; 

有効な構造体は配列ですが、それはあなたが望むものではありません。これは、文字列で構成される1つの要素を持つ配列を作成します。

あなたのimplode関数では、いくつかの異なる要素を1つにimplopeしたいので、日付のすべての部分は要素でなければなりません。このように:

$array = array($year, $month1, $date); 
+0

'$ array [] =" {$ year} {$ month1} {$ date} "; 'はOPが彼の用法で期待している方法ではなく、有効です。 – Blake

+0

私はあなたのコメントを反映するためにいくつかの詳細を追加しました。 – stUrb

+1

誤解を招くような情報を修正していただきありがとうございます。これらの簡単な質問が、私たち自身の無知や馬鹿さを時々明らかにすることは面白いです(具体的にあなたを選ぶことはありません。 60秒以内に間違った回答)。 –

3

あなたは各項目を配列に入れません。 1つの文字列を作成しています。それを置くために、配列を行うことです:あなたが期待するようしかし、なぜちょうど

$result = "{$year}/{$month1}/{$date}"; 
1

あなた$arrayが設定されていないんではない

$arr = array($year, $month1, $date); 

。試してみてください:

$array = array($year, $month1, $date); 
$imp = implode('/',$array); 
echo $imp; 
1

は、あなたが試してみました。..

$array = array($year,$month1,$date); 
$imp = implode('/',$array); 
+0

これは間違っています! $ array []では配列内にサブ配列を作成しています。私が意味するものを表示するには、var_dump($ array)を試してください。 – stUrb

+0

コピー貼り間違い。今変更されました。それを指摘してくれてありがとう。 –

2

だけsprintf()

$result = sprintf("%04d/%02d/%02d", $year, $month, $date); 
+0

これにsprintfを使用しますか?なぜチェースにカットして、ちょうど '$ year/$ month/$ date"をエコーし​​ないのですか?これは確かに*有効*ですが、私はそれがポストのコードで判断して、OPへの本当の助けだとは思わないのです。 –

+0

私は、日付の先頭にゼロを付けることを前提にしていました。これはそれを行います。 –

+0

ああ、関連していますが、この*特定のケースでは、POSTデータは常に文字列(または文字列の配列)であるため問題ありません。私はあなたの答えを掲示するときには、基本的に単なる説明のない単なるライナーであることを明確にすることができたと思います。明らかに、OPは混乱していて、何らかの手持ちが必要です。 –

0

$array[] = "{$year}{$month1}{$date}";を使用する問題のカップルを持っています

1)配列は、次のように表されます。

array($year, $month1, $date); 

2)配列は、あなたが)

$array = array($year, $month1, $date); 
+1

'$ array [] =" test "'は '$ array = array(" test ")と同じです;"どのように "2)配列は[]なしで割り当てられますか? – Blake

+0

@Blake:Array **要素**には、配列ではなく、[]で代入されます。 – amindfv

+0

要素を追加すると、PHPは配列をインスタンス化します。明示的に 'new Array'を宣言する必要はありません – Blake