0

私は次のコードを持っています

date("D j M g a", strtotime($start))." - " . date("ga", strtotime($finish));

`["Start"]=>
        string(21) "/Date(1354323600000)/"
        ["End"]=>
        string(21) "/Date(1354326300000)/"
      }`

上記のコードThu 1 Jan 12 pm - 12pm" string(22) "Thu 1 Jan 12 pm - 12pmは私が望む正しい形式で出力しますが、どうすれば正しい日付と時刻を取得できますか?

Pacific/Auckland私のタイムゾーンです

4

4 に答える 4

1

strtotime問題は、 -文字列に渡すものが関数/Date(1354323600000)/に対して有効な形式ではないことですstrtotime

実際には、ミリ秒単位の通常のUNIXタイムスタンプです。

したがって、明らかな解決策は、数値以外のすべてをクリーンアップして、1000で割ることです。

$unix_time_with_ms = preg_replace('~\D~', '', $date);
echo date('Y-m-d H:i:s', $unix_time_with_ms / 1000);
于 2012-11-29T07:40:53.503 に答える
0

php.ini次のような行を使用して、ファイルにデフォルトのタイムゾーンを設定することをお勧めします。

date.timezone = "Pacific/Auckland"

何らかの理由で編集できない場合php.iniは、PHPスクリプトに加えて、タイムゾーンを設定できます(そのスクリプトでのみ有効)。

date_default_timezone_set('Pacific/Auckland');
于 2012-11-29T05:52:38.807 に答える
0

を使用してタイムゾーンを設定できます

date_default_timezone_set('America/Los_Angeles');

その他のリンク

于 2012-11-29T05:53:05.287 に答える
0

スクリプトで設定したい場合は試してみてください

date_default_timezone_set—スクリプト内のすべての日付/時刻関数で使用されるデフォルトのタイムゾーンを設定します

date_default_timezone_set('America/Los_Angeles');

ただし、php.iniで設定するよりも同じタイムゾーンを使用する場合は、より適切なソリューションになります。

 date.timezone = "America/Los_Angeles"
于 2012-11-29T05:54:52.300 に答える