データベースに日付を DATETIME 型で保存します。Ymd H:i:s のようになります。
私が達成したいのは、ユーザーの現地時間でデータベースから日付を返すことです。たとえば、ユーザーがフランスにいる場合、ユーザーのタイムゾーンを返します。ユーザーのタイムゾーンを保存せずにこれを達成することは可能ですか? または、別の方法でそれが可能で、データベースの保存形式を変更する必要がある場合は、それを行うことができます。しかし、ユーザーのタイムゾーンを保存せずにこれを達成しようとしています。
時刻を UTC でデータベースに保存してから、アプリケーションでタイムゾーンのローカライズを行います。ただし、ユーザーのタイムゾーンを知る必要があります。
さて、ユーザーにタイムゾーンを尋ねずにそれを行う唯一の方法は次のとおりです。
<p>The time is: <span id="time" data="<?php echo strtotime($time_from_db); ?>"></span></p>
<script type="text/javascript">
(function () {
var t = document.getElementById('time'), d = new Date();
d.setTime(t.getAttribute("data"));
t.innerHTML = d;
})();
</script>
これにより、日時がタイムスタンプとして渡され、JS がロケール (タイムゾーンを含む) を適用します。
日付を GMT で保存すると、タイムゾーンでユーザーに表示できます。
編集:
date_default_timezone_set('UTC');
$today = getdate();
print_r($today);
これを確認してください: php convert datetime to UTC およびこれ: Convert UTC date to local time in PHP およびこれ: http://www.php.net/manual/en/function.gmdate.php