0

日付形式を変更していますが、間違った形式が表示されます

echo $punch_in_time;
// Prints 2013-09-09 11:40:00

echo $new_date = gmdate('D, M-d-Y h:i a',strtotime($punch_in_time)); 
// Prints Mon, Sep-09-2013 09:40 am (Notice the wrong time)

また、時刻を表示する前にタイムゾーンを設定しようとしましたが、効果はありませんでした。なぜこれが起こっているのかわかりません。私の時間をMon, Sep-09-2013 11:40 amではなくとして表示する必要がありMon, Sep-09-2013 09:40 amます。

4

2 に答える 2

2

機能を使用する前に、必ず説明/マニュアルをお読みください。

gmdate() の説明に「GMT/UTC 日付/時刻をフォーマットする」と書かれています。これは、入力した日付がローカル タイム ゾーンにあると想定していることを意味します (時差 GMT+2 から判断して ?) gmdate を変換します。 GMT+0 タイム ゾーンの日付形式に変換します。

timezone* が入力と出力の両方で一致していることを確認するには、代わりに date() を使用してください。

*これにより、日時がローカル タイムゾーンに変換されますが、これは必要なものではない可能性があります。

echo $new_date = date('D, M-d-Y h:i a',strtotime($punch_in_time)); 
于 2013-09-09T06:40:18.713 に答える
1

gmdate()は返される時間がグリニッジ標準時であることを除いて、 date()関数と同じです

代わりにこれを使用してください

echo $new_date = date('D, M-d-Y h:i a',strtotime($punch_in_time));
于 2013-09-09T06:30:54.783 に答える