1

現在、HTML5の日付入力と、strtotimeを使用して今日の平日(月、火など)を取得する2番目の非表示の入力を含むフォームがあります。問題は、誰かが今日12/5を選択した場合、実際には水曜日の12/5になるはずの12/5と金曜日にデータベースに入力されることです。

<input class="form" id="date" type="date" name="date" size="15" placeholder="yyyy-mm-dd" autofocus required />

<input type="hidden" name="weekday" value="<?php echo date('l',strtotime('now')); ?>" />

私がそれを実装したとき、私は今日の日付を使用することが問題になるとは思いませんでした。しかし、ユースケースが変更され、人々は新しい結果を入力しますが、古い日付を使用すると不一致になります。日付では12/5として表示され、水曜日であるはずの平日の金曜日として表示されます。

フォームはまだ実際に送信されていないため、2つの入力をリンクする方法がわかりません。どんな助けでもいただければ幸いです。

4

2 に答える 2

1

PHPのDateTime関数を使用して、非表示のフィールドをまとめて削除するだけです。

$date = date_create($_POST['date']);
$day = $date->format('l');

DateTimeコンストラクトの詳細:http://us3.php.net/manual/en/datetime.construct.php

従来の日付関数ではなく、PHPに組み込まれているDateTimeクラスを使用する習慣を身に付けることを強くお勧めします。これらは通常、操作が簡単で、UNIXエポックの制限の影響を受けません。また、コーディングの好みに応じて、オブジェクト指向または手続き型で使用することもできます。

于 2012-12-07T16:37:29.127 に答える
1

サーバー側でこれを実行してみませんか?

$date = $_POST["date"];
$dateString = date('m/d l',strtotime($date));

PHPのdate()についてもっと読む

PHP strtotime()についてもっと読む

非表示の入力を完全に削除するだけです。それは必要ない。

于 2012-12-07T16:33:45.847 に答える