0

私は現在、入力フォームから入力された値を取得し、それらをラップしてSOAPリクエストで送信するカスタムコンポーネントをJoomla内に構築しています。日付 (生年月日、または "dob" 形式の名前) である入力フォーム要素の 1 つは、SOAP API が受け入れる有効な日付形式に変換する必要があります。

これらのフォーム要素を受け入れて送信する準備をする関数内から非常に奇妙な問題が発生していますが、日付形式を SOAP の有効な形式に変更しようとすると、PHP 関数 strtotime がまったく機能していないようです。扱うAPI。

post 要素 dob の時間フォーマットを処理する関連関数コードは次のとおりです。

$postVar['dob'] = date("Y-d-m G-i-s", strtotime($_POST['dob']));
die(print_r($postVar['dob']));

上記のように変数を死んで出力して結果を確認すると、strtotimeは完全に無視され、死ぬことはありません。

フォームは、日付フォーム要素に jQuery Datepicker を使用します。関数によって受信されたときの $_POST['dob'] の変数出力は次のようになります。

14/03/2013

strtotime 関数がここで効果がなく、無視されている理由を誰でも見ることができますか? ありがとう

編集:ここに追加するのは、jQueryのdatepickerコードです。

jQuery("#dob").datepicker({dateFormat:'dd/mm/yy', changeMonth: true,    stepMonths: 12, showAnim:"slideDown" });
4

1 に答える 1

2

Joomla! では、スーパーグローバルに直接触れることはありません。また、エラー状態を反映している可能性がある場合は、取得した結果を常に確認してください。

$input          = JFactory::getApplication()->input;
$dob            = $input->get('dob', null, 'string');
$postVar['dob'] = 'invalid';
if (!is_null($dob)) {
    $dob = strtotime($dob);
    if ($dob > 0) {
        $postVar['dob'] = date("Y-d-m G-i-s", $dob);
    }
}
于 2013-05-15T01:03:54.877 に答える