1

PHPで文字列の日時をタイムスタンプに変換する際に問題があります。

$time = strtotime('2012-12-28 01:02:43');

echo $time; //it returns 1356627763

その整数値を日時に戻すと、正しくありません (28/12/2012 00:02:43)。基本的に1時間遅れです。

my_format_datetime(strtotime('2012-12-28 01:02:43'));

以下は私の my_format_datetime 関数です:

> function my_format_datetime($unix)
>         {
>             if ($unix == '' || !is_numeric($unix))
>             {
>                     $unix = strtotime($unix);
>             }
>             else
>             {
>                 $timezone = 3600*(DEFAULT_GMT + date("0"));
>                 $unix = gmdate("d/m/Y H:i:s", $unix + $timezone);
>             }
>             
>             return $unix;
>         }

しかし、time() 関数を使用して変換すると、正しいです。

私を助けてください。本当にありがとう。

4

1 に答える 1

1

ローカルタイムゾーンを設定します。date_default_timezone_set().http://php.net/manual/en/function.date-default-timezone-set.phpを使用して、phpスクリプトで実行できます。

または、デフォルトでUTCに設定されている値をphp.ini変更することにより、構成でこれを行うことができます。date.timezone

于 2012-12-28T02:37:49.487 に答える