DateTimeToLocalizedStringTransformer.php の一部の日付を PHP 拡張子 Intl でフォーマットする際に問題があります。これは、指定された date.timezone に依存します (ここではたとえば、Europe/Malta )。
<?php
$begin = new DateTime( '1900-01-01' );
$end = new DateTime( '2100-01-01' );
$interval = DateInterval::createFromDateString('1 day');
$period = new DatePeriod($begin, $interval, $end);
$intlDateFormatter = new IntlDateFormatter("en_US", 2, -1, "Europe/Malta", 1, "dd/MM/yyyy");
$intlDateFormatter->setLenient(false);
foreach ( $period as $dt ){
$test_date = $dt->format("d/m/Y");
$timestamp = $intlDateFormatter->parse($test_date);
if (intl_get_error_code() != 0) {
echo $test_date."n";
echo intl_get_error_message()."n";
}
}
?>
このリターン:
03/06/1916
Date parsing failed: U_PARSE_ERROR
01/04/1917
Date parsing failed: U_PARSE_ERROR
10/03/1918
Date parsing failed: U_PARSE_ERROR
02/03/1919
Date parsing failed: U_PARSE_ERROR
21/03/1920
Date parsing failed: U_PARSE_ERROR
15/06/1940
Date parsing failed: U_PARSE_ERROR
16/03/1947
Date parsing failed: U_PARSE_ERROR
22/05/1966
Date parsing failed: U_PARSE_ERROR
28/05/1967
Date parsing failed: U_PARSE_ERROR
26/05/1968
Date parsing failed: U_PARSE_ERROR
01/06/1969
Date parsing failed: U_PARSE_ERROR
31/05/1970
Date parsing failed: U_PARSE_ERROR
23/05/1971
Date parsing failed: U_PARSE_ERROR
28/05/1972
Date parsing failed: U_PARSE_ERROR
31/03/1973
Date parsing failed: U_PARSE_ERROR
21/04/1974
Date parsing failed: U_PARSE_ERROR
これは symfony に直接リンクされていませんが、関数は symfony で日付を変換するために使用されます。では、symfony の次のバージョンで機能を変更できますか?