0

指定されたGMT日時(YYYY-MM-DD HH:MM)を、東海岸の日付を表すこのような文字列YYYYMMDDに変換する必要があります。以下のコードは大丈夫だと思いますか?

$date='2011-11-07 04:30';
$date.='-4 hours';
$date=strftime('%Y-%m-%d %H:%M',strtotime($date));
$y=gmdate('Y');  
$date2=date('Y-m-d 02:00',strtotime($y.'-03-01 second sunday'));
$date3=date('Y-m-d 02:00',strtotime($y.'-11-01 first sunday')); 
if($date<=$date2||$date>=$date3) {      
  $date.='-1 hour';
  $date=strftime('%Y-%m-%d %H:%M',strtotime($date));
} 
$date=date('Ymd', strtotime($date));
4

1 に答える 1

1

自分で計算しようとしないことをお勧めします。私たちの素晴らしい、絶えず変化する時間基準には、ニュアンスが多すぎます。代わりに、PHPを使用してphp.net/date_default_timezone_setを使用してタイムゾーンをGMTに設定し、次にstrtotime()(またはDateTimeクラス)を使用してunix-timestamp値を取得して計算を実行します。

UNIXタイムスタンプを取得したら、php.net / date_default_timezone_setを再度使用して、タイムゾーンをAmerica / New_Yorkに設定し、date()

于 2011-11-04T18:45:56.647 に答える