php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #79858 IntlDateTimeFormatter spec does not match PHP
Submitted: 2020-07-14 13:46 UTC Modified: 2021-02-01 15:23 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: m dot smeets at performation dot com Assigned: cmb (profile)
Status: Not a bug Package: intl (PECL)
PHP Version: 7.3.20 OS: Linux
Private report: No CVE-ID: None
 [2020-07-14 13:46 UTC] m dot smeets at performation dot com
Description:
------------
---
From manual page: https://php.net/class.intldateformatter
---

According to https://www.php.net/manual/en/function.date.php 'Y' is "A full numeric representation of a year, 4 digits" and 'o' is "ISO-8601 week-numbering year. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. (added in PHP 5.1.0)"

But in IntlDateFormatter "Y" is "Week of Year", shown in http://userguide.icu-project.org/formatparse/datetime. This means that the following format will be interpreted differently

Test script:
---------------
date = 2018-12-31
format = d-m-Y

PHP date_format "31-12-2019"
IntlDate format "31-12-2020"

Expected result:
----------------
Expected result is the same, but I expect a warning on the PHP IntlDateFormatter page: https://www.php.net/manual/en/class.intldateformatter.php


Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2020-07-20 01:40 UTC] a at b dot c dot de
The documentation for the IntlDateFormatter constructor does say:

" pattern

    Optional pattern to use when formatting or parsing. Possible patterns are documented at ยป http://userguide.icu-project.org/formatparse/datetime.
"
 [2021-02-01 15:23 UTC] cmb@php.net
-Status: Open +Status: Not a bug -Package: Date/time related +Package: intl -Assigned To: +Assigned To: cmb
 [2021-02-01 15:23 UTC] cmb@php.net
Indeed, the ext/date format specifiers do not apply to
IntlDateFormatter, as already documented.
 
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Wed Apr 14 12:01:24 2021 UTC