2011-07-28 5 views
0

訪問者に特定の日付(たとえば、今後20日間)を選択させたいだけです。だから、私はこのようなフォームを持っています。コントローラでドロップダウン選択メニューから受信したタイムスタンプを古いものにする問題。

<select name="data"> 
<?php 
    $day = date('d'); 
    $i = 1; 
    while($i < 20) { 
     $i++; 
     $data = (date("d-M-Y",mktime(0,0,0,7,$day,2011)) . "<br />"); 
     echo "<option value='".$data."'>".$data."</option>"; 
     $day++; 
    } 
?> 
</select> 

(私はCodeIgniterのを使用)、私は日付をエコーすることができますが、私は時代遅れのタイムスタンプを作成することはできません。

$data = $this->input->post('data'); 
$timestamp = strtotime('$data'); 
echo $timestamp; 

echo $timestampは機能しません。何も表示しません。

私の$date23-08-2011ですが、echo strtotime('23-08-2011');が機能します。

コードイグナイター(1フォーム、1 processformfile)の外で試しても、それでも動作しません。

なぜ機能しないのですか?

ありがとうございます。

+0

何-場合、それは2012年ですが、またはさらに別の月ですか?あなたのコードはまだ動作しますか? – Pindatjuh

+0

CodeIgniterには、日付の書式を設定するための設定オプションがあります。あなたの場合は、 'date($ this-> config-> item( 'log_date_format')、mktime(0、0、0、7、$ day、2011))'のようになります。 –

+0

Thanx Chris。@ pindatjuh.Itは最終テストコードではありませんでした。$ month = date( 'm'); mktime関数の$ monthは何年でも使えます。 – alin

答えて

4

まあ、$dataをリテラル文字列として処理しているため、$timestamp=strtotime('$data');は機能しません。引用符を削除します。また、

$timestamp=strtotime($data); 

、あなたは改行でフォーマットされた文字列として$dataを設定している:

$data=(date("d-M-Y",mktime(0,0,0,7,$day,2011))."<br />"); 

試してみてください。

$data=date("d-M-Y",mktime(0,0,0,7,$day,2011); 
+0

$ dataの
タグは役に立ちません。 – Bing

+0

または二重引用符 '" $ data "'を使用してください。 – Pindatjuh

+4

@Pindatjuh - ); – AlienWebguy

関連する問題