PHP を使用してフォームの一部を生成するにはどうすればよいですか?
ユーザーがメニューのすべてのオプションを入力することなく、月、日、年のドロップダウン メニューから日付を入力できるフォームを作成したいと考えています。PHP で自動的に行うにはどうすればよいでしょうか?
たとえば、純粋な HTML を使用して手動で入力せずに、1 月の 1 ~ 31 日、2 月の 1 ~ 28 日などを生成するにはどうすればよいでしょうか。
PHP を使用してフォームの一部を生成するにはどうすればよいですか?
ユーザーがメニューのすべてのオプションを入力することなく、月、日、年のドロップダウン メニューから日付を入力できるフォームを作成したいと考えています。PHP で自動的に行うにはどうすればよいでしょうか?
たとえば、純粋な HTML を使用して手動で入力せずに、1 月の 1 ~ 31 日、2 月の 1 ~ 28 日などを生成するにはどうすればよいでしょうか。
これは、PHPで行う方法の簡略化されたバージョンです
<select name="birthday_month" id="birthday_month">
<option value=""></option>
<? foreach(range(1,12) as $month): ?>
<option value="<?= $month ?>"><?= date('F', mktime(1,1,1,$month,1,2000)) ?></option>
<? endforeach; ?>
</select>
<select name="birthday_day" id="birthday_day">
<option value=""></option>
<? foreach(range(1,31) as $day): ?>
<option value="<?= $day ?>"><?= $day ?></option>
<? endforeach; ?>
</select>
<select name="birthday_year" id="birthday_year">
<option value=""></option>
<? foreach(range(date('Y'),1900) as $year): ?>
<option value="<?= $year ?>"><?= $year ?></option>
<? endforeach; ?>
</select>
それらを頻繁に使用する場合は、それらを出力する関数を作成できます。
編集:日付はサーバー側でチェックする必要があるため、日付の自動入力に時間をかけません。
HTML5には日付セレクタ コンポーネントがあると思いますが、それを使用するには時期尚早かもしれません。
Galen は正しい方向に進んでいますが、ブラウザで月を変更すると、正しい日付設定が得られません (つまり、担当者に電話をかけ直さないと、2 月 31 日になってしまいます)。サーバ)
私が信じる Itay Moav の Javascript の提案は、JavaScript を使用してブラウザー側で DOM を変更することです。ユーザーが 2 月を選択して月セレクターの onChange イベントをトリガーすると、日付セレクターを書き換えて、年に応じて 28 ~ 29 日を作成します (!)
私は一度これらの行に沿って何かをしました.ページ/スクリプトをそれほど難しくなく引き離すことができるはずです.
2 つの答え:
1: JavaScript Calendar クラスを見つけます。
2: PHP の場合:
$year = 2009; // February has different days in month - based on leap year
for ($month = 1; $month <= 12; $month++)
$lastDayOfMonth[$month] = date("j", strtotime("yesterday", strtotime($month+1."/1/$year")));
これで、月の配列 (マップ) ができました。月ごとにインデックスが付けられ、値はその月の日数に設定されています。
タイムコードは基本的に次のように言います: 翌月の最初の日を見つけて、昨日 (翌月の最初の日の前日) を見つけて、その日を返します。したがって、その月の最後の日はその月の日数です。
-CF
また、スクリプトが実行されている月の日数を表示する場合は、次のようにします。
print date("t", mktime(0,0,0, date("n") ));
これは、30、31、または 28 (2 月の場合) のいずれかを出力します。