次のような日付をどのように変換できますか:(タイムゾーンにあります)をタイムゾーン2012-07-16 01:00:00 +00
に変換するにはどうすればよいですか? 夏時間が正しく処理されるようにしますか?UTC +00:00
UTC +04:00
質問する
32319 次
4 に答える
56
とを使用DateTime
しDateTimeZone
ます。
$date = new DateTime('2012-07-16 01:00:00 +00');
$date->setTimezone(new DateTimeZone('Europe/Moscow')); // +04
echo $date->format('Y-m-d H:i:s'); // 2012-07-15 05:00:00
于 2012-08-09T12:54:40.987 に答える
0
解決策を支援するには、文字列の最後の部分 (オフセット部分) を取得し、単純な検索に対して検索する必要があります。正規表現またはsubstr()
(おそらく)を使用して、最も悪い部分を取得できます。次に、+ または - の値がある場合は、PHP の可能なタイムゾーンで使用できる可能なタイムゾーンに対して最大 24 のルックアップを使用します。オフセットが同じ場合、実際の国/場所が何であるかは誰が気にしますか?
date_default_timezone_setを使用して正しいものを適用します。
于 2012-08-09T12:55:01.250 に答える
-2
GMT 時間も使用して、後で必要に応じて変換することもできます
<?php
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>
GMT は、世界中で共通のグリニッジ標準時を指します。
于 2014-08-22T09:41:07.560 に答える