1

私は Windows 7 32 ビットで CakePHP V. 2.3.4 を使用しています。パラメーターを使用しようとしてmaxYearminYearますが、正しい値を取得できません。使用するコードは次のとおりです。

echo $this->Form->input(
    'date_birth',
    array(
        'dateFormat'=>'DMY',
        'minYear'=>date('Y')-100,
        'maxYear'=>date('Y')-18
)

);

Cake で表示される値は、Min Year: 1913、Max Year: 2013です。
正しい値は、Min Year: 1913、Max Year: 1995です。

また、私は入れようとしました:

echo $this->Form->input(
    'date_birth',
    array(
        'dateFormat'=>'DMY',
        'maxYear'=>date('Y')-18
    )
);

しかし、結果は正しくありません: from 1993 to 2013 .

私を助けてください。

4

4 に答える 4

2

入力にデフォルト値を追加すると、この問題が修正されることがわかりました。基本的に、CakePHP は日付エントリを現在の日付にデフォルト設定します。maxYear をデフォルトよりも早い日付に設定しようとすると、maxYear が無視されてデフォルトが優先されます。

そう:

echo $this->Form->input(
    'dob',
    array(
        'type' => 'date',
        'selected' => array(
            'year'=>date('Y')-18
        ),
        'minYear' => date('Y') - 100,
        'maxYear' => date('Y') - 18
    )
);
于 2013-07-21T12:30:15.930 に答える
0

Cakephpドキュメントによると

以下のコードを試すことができます

echo $this->Form->input('date_birth', array(
    'label' => 'Date of birth',
    'dateFormat' => 'DMY',
    'minYear' => date('Y') - 70,
    'maxYear' => date('Y') - 18,
));

きっとあなたのために働くと思います。

于 2013-05-14T04:15:45.680 に答える
0

現在のマスター ブランチ (2.3.5) を使用したばかりで、正確なスニペットを使用しています

$result = $this->Form->input('date_of_birth', array(
    'dateFormat' => 'DMY',
    'minYear' => date('Y') - 100,
    'maxYear' => date('Y') - 18));

そして得た:

<div class="input text">
    <label for="date_of_birth">Date Of Birth</label>
    <input name="data[date_of_birth]" dateFormat="DMY" minYear="1913" maxYear="1995" type="text" id="date_of_birth"/>
</div>

あなたが何をしているのかわかりません。しかし、ここではケーキのせいではないようです..

2.3.4 以降、この範囲外の年を事前選択/デフォルト値として渡すと、上記のコメントのように値の範囲が自動的に予測されることに注意してください。

于 2013-05-14T14:59:30.107 に答える