1

couponタイプのテーブルにmysql日付を格納していますdatetime。私の日付は次のようにmysqlテーブルに保存されます:-

2013-11-04 00:00:00

そしてeditingHTMLフォームを介して。私は値を取得し、以下のようにHTMLフォームに値を入れています:-

<input id="unlisted" type="date" name="coupon" class="input-large" 
value="<?php echo gmdate('Y-m-d' ,strtotime($edit['coupon'])); ?>" />

どこ$edit['coupon'] = 2013-11-04 00:00:00

  • 問題は、日付を変更せずに保存した後、フォームに1日戻って日付を表示することです。日付は1日前に保存されています。2013-11-03 00:00:00.

編集を1回クリックするたびに、日付を変更せずに保存します。1 日さかのぼります:- 2013-11-02 00:00:00-> 2013-11-01 00:00:00-> など。

4

1 に答える 1

0

異なるタイムゾーンが原因で問題が発生している可能性があります。PHP インストールのデフォルトのタイムゾーンは、実際の場所とは異なります。これを修正するには、デフォルトのタイムゾーンを設定するか、特定の関数呼び出しで設定するだけです。

を編集して、PHP インストールのデフォルトのタイムゾーンを設定できますphp.ini。デフォルトのタイムゾーンをプログラムで変更することもできます:

date_default_timezone_set('Europe/Stockholm');


特定の通話にタイムゾーンを設定するには:

strtotime($date_str . ' ' . $timezone);


デフォルトのタイムゾーンを確認することもできます:

date_default_timezone_get();


ご覧のとおり、'Europe/Stockholm' はタイムゾーンを表す文字列です。タイムゾーンの完全なリストについては、PHP マニュアルのサポートされているタイムゾーンのリストを参照してください。

(PHP > 5.2 を使用している場合は、strtotime の代わりに DateTime を使用できます。)

幸せなコーディング:-)

于 2013-11-04T03:53:31.227 に答える