PHPマニュアルによると
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
したがって、有効な日付文字列を使用する必要があります。
これは機能します。返却 12:10
$roster_input='14:15' ;
$timestamp = strtotime($roster_input) - 7500;
$format = date("H:i", $timestamp );
$date = new DateTime($format, new DateTimeZone('Pacific/Nauru'));
echo $date->format('H:i') . "\n"; //Note how you echo the result
これは失敗します(あなたの場合のようにタイムスタンプを直接使用します);
$roster_input='14:15' ;
$timestamp = strtotime($roster_input) - 7500;
$date = new DateTime($timestamp , new DateTimeZone('Pacific/Nauru'));
echo $date->format('H:i') . "\n";
致命的なエラー: メッセージ「DateTime::_ construct() [datetime.--construct]: Failed to parse time string (1362417000) at position 8 (0): Unexpected character」を含むキャッチされない例外「Exception」 :7 スタック トレース: #0 writecodeonline.com/php(7): DateTime-> _construct('1362417000', Object(DateTimeZone)) #1 {main} が 7 行目にスローされる
タイムスタンプを直接使用するには、これが機能します: 17:10 を返します
$roster_input='14:15' ;
$timestamp = strtotime($roster_input) - 7500;
$date = new DateTime('@'.$timestamp , new DateTimeZone('Pacific/Nauru')); //Notice '@'.
echo $date->format('H:i') . "\n";
どちらが目標の結果に適していますか。異なる結果に注意してください 続きを読む: http://www.php.net/manual/en/datetime.construct.php