「今日」という単語から作成された DateTime と「今日」を表すタイムスタンプが同一ではないのはなぜですか?
$zone = 'US/Eastern';
$str = 'today';
$dt_zone = new DateTimeZone($zone);
$myDateTime = new DateTime($str, $dt_zone);
$my_stamp = $myDateTime->getTimestamp();
echo "from $my_stamp {$zone}:".$myDateTime->format('d-m-Y H:i:s') . "<br>";
結果が得られました: from 1383886800 US/Eastern:08-11-2013 00:00:00
同じコードを作成しますが、受信したタイムスタンプから DateTime を生成します。
$zone = 'US/Eastern';
$str = '@1383886800';
$dt_zone = new DateTimeZone($zone);
$myDateTime = new DateTime($str, $dt_zone);
$my_stamp = $myDateTime->getTimestamp();
echo "from $my_stamp {$zone}:".$myDateTime->format('d-m-Y H:i:s') . "<br>";
そして、異なる結果が得られましたが、タイムスタンプは同じでした: 結果が得られました: from 1383886800 US/Eastern:08-11-2013 05:00:00
タイムスタンプから日時オブジェクトを作成する別の方法が存在する可能性がありますか? 後で $myDateTime->modify('2 pm'); を実装できます。変更されたタイムスタンプを受け取ります(方法がわからないので、 $myDateTime->getTimestamp() は変更前のタイムスタンプを返します)