Bug #78432 [Opn]: IntlDateFormatter not parsing from given format for some locales

From: Date: Wed, 21 Aug 2019 08:10:22 +0000
Subject: Bug #78432 [Opn]: IntlDateFormatter not parsing from given format for some locales
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-222334@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=78432&edit=1 ID: 78432 User updated by: justmoen at gmail dot com Reported by: justmoen at gmail dot com -Summary: IntlDateFormatter not parsing from given format +Summary: IntlDateFormatter not parsing from given format for some locales Status: Open Type: Bug Package: Date/time related Operating System: Ubuntu 16.04 PHP Version: 7.2.21 Block user comment: N Private report: N New Comment: update summary Previous Comments: ------------------------------------------------------------------------ [2019-08-21 07:53:27] justmoen at gmail dot com Description: ------------ IntlDateFormatter appears to treat the provided pattern parameter 'MM/dd/yyyy h:mm: a' as invalid based on the given culture. The problem occurs after a change in ICU 64.1 to no longer accept am/pm for cultures with the languages 'es', 'sv' and several others. Should the IntlDateFormatter be able to parse from a standard pattern independent of the set locale? Test script: --------------- <?php $date = '08/08/2019 06:00 pm'; $cultureZones = [ 'en_US' => 'US/Central', 'es_US' => 'US/Central', 'fr_CA' => 'Canada/Central', 'en_CA' => 'Canada/Central', 'es_ES' => 'Europe/Madrid', 'en_GB' => 'Europe/London', 'es_MX' => 'America/Mexico_City', 'fr_FR' => 'Europe/Paris', 'sv_SE' => 'Europe/Stockholm' ]; foreach($cultureZones as $culture => $timezone) { $formatter = new \IntlDateFormatter($culture, 2, 2, $timezone, 1, 'MM/dd/yyyy h:mm a'); echo $culture." (".$timezone.") returned: ".var_export( $formatter->parse($date), true )."\n"; } Expected result: ---------------- en_US (US/Central) returned: 1565305200 es_US (US/Central) returned: 1565305200 fr_CA (Canada/Central) returned: 1565305200 en_CA (Canada/Central) returned: 1565305200 es_ES (Europe/Madrid) returned: 1565280000 en_GB (Europe/London) returned: 1565283600 es_MX (America/Mexico_City) returned: 1565305200 fr_FR (Europe/Paris) returned: 1565280000 sv_SE (Europe/Stockholm) returned: 1565280000 Actual result: -------------- en_US (US/Central) returned: 1565305200 es_US (US/Central) returned: false fr_CA (Canada/Central) returned: 1565305200 en_CA (Canada/Central) returned: 1565305200 es_ES (Europe/Madrid) returned: false en_GB (Europe/London) returned: 1565283600 es_MX (America/Mexico_City) returned: false fr_FR (Europe/Paris) returned: 1565280000 sv_SE (Europe/Stockholm) returned: false ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=78432&edit=1

« previous php.bugs (#222334) next »