PHPで2038年以降のローカライズされた日付を使用しようとしています
strftime はタイムスタンプを使用するため、2038 年以降は機能しません
DateTime はローカライズされていません...
だから私は DateTime で IntlDateFormatter を使用しようとします:
$d = DateTime::createFromFormat('Y-m-d', '2040-01-01');
$fmt = new IntlDateFormatter(
'fr_FR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo $fmt->format($d);
echo $fmt->getErrorMessage();
ここで私が得るもの:datefmt_format:タイムスタンプを取得できません:U_ILLEGAL_ARGUMENT_ERROR
実際、IntlDateFormatter は内部的に日付をタイムスタンプに変換すると思います...
では、php で 2038 年以降の日付をローカライズするにはどうすればよいでしょうか。