0

私は人々から私の髪を引っ張ろうとしています。ドロップダウン メニューから日と月を選択するフォームがあり、現在の年が自動的に連結されます。

サーバー上で私はこれを持っています:

$received =  date("Y")."-".$_POST['month']."-".$_POST['day'];
$date = strtotime($received);

$newformat = date('Y F j',$date);
echo $newformat;

$_POST['month'] == 'April'と言ってみましょう$_POST['day'] == '5'

出力は常に次のようになります。

2013 April 1(つまり、日のデフォルトは 1 です)。

興味深いことに$_POST['day'] == '24'、出力は次のようになります。

2013 April 2

それはちょうど最初の数字を見ているかのようです..どんなアイデアでも大歓迎です!

4

2 に答える 2

2

「月」変数が整数ではなく文字列であるという問題はありますが、整数であるかのように日付に入れていますか? ... の代わり2013-April-5に a を入れてみてください。4April

アップデート

質問に答えるには、クライアントを更新して のようなオプションを<option value="1">January</option>追加するか、PHP を更新して次のように処理します。

<? $received =  $_POST['month']." ".$_POST['day']." ".date("Y");
$date = strtotime($received);

$newformat = date('Y F j',$date);
echo $newformat; ?>

それはうまくいくと思います。

于 2013-09-07T01:43:50.583 に答える
1

問題は、ハンドラーやフォームにある可能性があります (質問に完全なコードが表示されていない場合)。

私はそれをテストしましたが、完璧な結果が得られました。

以下で作成したフォームに5month とdayを入力すると、 が返されます。242013 May 24

フォームとハンドラーの構文を確認してください。

次のフォームとハンドラーを使用すると、完璧な結果が得られます

HTMLフォーム

<form action="date_handler.php" method="post">
Month: <input type="text" name="month">
<br>
Day: <input type="text" name="day">
<br>
<input type="submit" name="submit" value="Submit">
</form>

PHP ハンドラ

<?php
$month=$_POST['month'];
$day=$_POST['day'];
$received =  date("Y")."-".$_POST['month']."-".$_POST['day'];
$date = strtotime($received);
$newformat = date('Y F j',$date);
echo $newformat;
?>
于 2013-09-07T01:54:34.307 に答える