1

JavaScript カレンダー ピッカーから入力を受け取り、それをサーバーに送信し、サーバーがそれを人間が読める時間に変換してエコー バックする単純な Web アプリの一部があります。

HTML フォームの値が MM/DD/YYYY の形式で表示されます。

これがサーバーに POST されると、この PHP はそれを別の形式に変換します (私は CodeIgniter を使用しているので$this->input->post()、 と同じであることに注意してください$_POST[]):

php $date = date('l, F n, Y', strtotime($this->input->post('date')));

入力と出力の例

HTML テキスト入力は「04/21/2013」の値を取得します。

PHP の strtotime() は、「2013 年 4 月 4 日日曜日」をエコー バックします。

そこに入力した日付に関係なく、 strtotime() は常に正しい日付を返しますが、その月の日は常に月の数字と同じ数字になります (たとえば、5 月の日付はすべて " 2013 年 5 月 5 日」など)。

更新: 解決済み

これを投稿するとすぐに、「l、F n、Y」の「n」が問題の原因であることに気付きました。それを「j」固定のものに変えます。みんなの時間を無駄にしてごめんなさい。

4

2 に答える 2

4

数値jの月ではなく、月の日付に使用します。n

php $date = date('l, F j, Y', strtotime($this->input->post('date')));

実際に見る

于 2013-04-18T15:30:02.590 に答える
2

ここで date() のドキュメントを参照してください: http://php.net/manual/en/function.date.php

日付関数の最初のパラメーターの n を j に変更すると、月の日の数が得られます。

于 2013-04-18T15:34:44.467 に答える