PHP 5.6でバグが見つかりました。パラメータ%G
の関数strftime
は、4桁の年を生成します。ただし、1483246800
(2017年1月1日)を入力すると間違った年を返しているようです。代わりに2016が返されます。なぜstrftime( '%G'、strtotime( '2017-01-01'))は2016を生成しますか?
例のコードスニペット:
echo strftime('%G', strtotime('2017-01-01'));
これは、 "2017" を印刷する必要がありますが、私は代わりに "2016" を得ます。私はPHP 5.6を実行しています。 このエッジケースは、他の年にも表示されます(例: 2016-01-03は2016の代わりに2015を出力します。
あなたのロケールは何ですか? –
これはISO週が月曜日から始まるので、2017年1月1日は2016年12月26日月曜日に始まった週にある日曜日です。代わりに 'Y'を使用したいと思うかもしれません。 – AbraCadaver