[php-src] Issue #9956: Europe/Kyiv U_ILLEGAL_ARGUMENT_ERROR
| From: | Daijobou | Date: | Tue, 15 Nov 2022 10:40:50 +0000 |
| Subject: | [php-src] Issue #9956: Europe/Kyiv U_ILLEGAL_ARGUMENT_ERROR | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-242824@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/9956
Author: Daijobou
### Description
In PHP 8.1.4
timezone_identifiers_list() shows "Europe/**Kiev**", in PHP
8.1.12 its shows "Europe/**Kyiv**" but in IntlDateFormatter "Europe/Kyiv" is
unknown.
**Rename "Kiev" to "Kyiv" is a very bad decision, its break many database
entries!**
IntlDateFormatter still working with 'Europe/Kiev'.
https://www.php.net/manual/de/timezones.europe.php
shows "Europe/**Kyiv**" there are no hint that this was renamed.
The following code:
```php
<?php
var_dump(timezone_identifiers_list());
//exit;
$fmt = new IntlDateFormatter(
'en_US.utf8',
IntlDateFormatter::NONE,
IntlDateFormatter::NONE,
'Europe/Kyiv'
);
```
Resulted in this output:
```
// only use var_dump with PHP 8.1.4
// [336]=> string(11) "Europe/Kiev" [337]=> string(12) "Europe/Kirov"
[338]=> string(13) "Europe/Lisbon"
// only use var_dump with PHP 8.1.12
// [333]=> string(12) "Europe/Kirov" [334]=> string(11) "Europe/Kyiv"
[335]=> string(13) "Europe/Lisbon"
// PHP 8.1.12 its still working with "Europe/Kiev"
datefmt_create: No such time zone: 'Europe/Kyiv': U_ILLEGAL_ARGUMENT_ERROR
```
But I expected this output instead:
```
No error AND no rename Kiev to Kyiv.
```
### PHP Version
PHP 8.1.12
### Operating System
AlmaLinux 8.7