[DOC-CVS] [doc-en] master: DateTimeZone::listIdentifiers improvements (#4882)

[email protected] (AllenJB via GitHub)
Newsgroups php.doc.cvs
Message-ID <[email protected]>
Author: AllenJB (AllenJB)
Committer: GitHub (web-flow)
Pusher: derickr
Date: 2025-12-09T08:46:27Z

Commit: https://github.com/php/doc-en/commit/c018a4d2c85ac429f238f78679eca46d86c63a31
Raw diff: https://github.com/php/doc-en/commit/c018a4d2c85ac429f238f78679eca46d86c63a31.diff

DateTimeZone::listIdentifiers improvements (#4882)

* DateTimeZone::listIdentifiers improvements

* DateTimeZone::listIdentifiers improvements

* DateTimeZone::listIdentifiers improvements (removed runnable annotations - see #4887 )

* Update reference/datetime/datetimezone/listidentifiers.xml

Co-authored-by: Gina Peter Banyard <[email protected]>

* Update reference/datetime/datetimezone/listidentifiers.xml

Co-authored-by: Gina Peter Banyard <[email protected]>

---------

Co-authored-by: Gina Peter Banyard <[email protected]>

Changed paths:
  M  reference/datetime/datetimezone/listidentifiers.xml


Diff:

diff --git a/reference/datetime/datetimezone/listidentifiers.xml b/reference/datetime/datetimezone/listidentifiers.xml
index 1dda356bb724..e8093ad0b57f 100644
--- a/reference/datetime/datetimezone/listidentifiers.xml
+++ b/reference/datetime/datetimezone/listidentifiers.xml
@@ -20,6 +20,18 @@
    <methodparam choice="opt"><type>int</type><parameter>timezoneGroup</parameter><initializer>DateTimeZone::ALL</initializer></methodparam>
    <methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>countryCode</parameter><initializer>&null;</initializer></methodparam>
   </methodsynopsis>
+  <simpara>
+   Return the list of <link xlink:href="&url.wiki.tzdb.names;">IANA Time Zone identifiers</link>.
+  </simpara>
+
+  <note>
+   <simpara>
+    It's possible to detect the client (browser) timezone with JavaScript using
+    <link xlink:href="&url.js.intl-datetimeformat;">Intl.DateTimeFormat</link> or
+    <link xlink:href="&url.js.temporal-zoneddatetime;">Temporal.ZonedDateTime</link>.
+   </simpara>
+  </note>
+
  </refsect1>
 
  <refsect1 role="parameters">
@@ -96,25 +108,28 @@
   &reftitle.examples;
   <para>
    <example>
-    <title>A <methodname>DateTimeZone::listIdentifiers</methodname> example</title>
+    <title>List identifiers with location comments</title>
     <programlisting role="php">
 <![CDATA[
 <?php
-$timezone_identifiers = DateTimeZone::listIdentifiers();
-for ($i=0; $i < 5; $i++) {
-    echo "$timezone_identifiers[$i]\n";
+$identifiers = DateTimeZone::listIdentifiers(DateTimeZone::ALL);
+
+foreach ($identifiers as $tzid) {
+    $tz = new DateTimeZone($tzid);
+    $comments = $tz->getLocation()['comments'];
+    echo $tzid . " (" . ($comments ?: 'Whole region') . ")\n";
 }
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
     <screen>
 <![CDATA[
-Africa/Abidjan
-Africa/Accra
-Africa/Addis_Ababa
-Africa/Algiers
-Africa/Asmara
+America/Antigua (Whole region)
+America/Araguaina (Tocantins)
+America/Argentina/Buenos_Aires (Buenos Aires (BA, CF))
+America/Argentina/Catamarca (Catamarca (CT), Chubut (CH))
+America/Argentina/Cordoba (Argentina (most areas: CB, CC, CN, ER, FM, MN, SE, SF))
+// (Output trimmed due to length)
 ]]>
     </screen>
    </example>
@@ -130,7 +145,6 @@ $timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::ASIA );
 for ($i=0; $i < 5; $i++) {
     echo "$timezone_identifiers[$i]\n";
 }
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
@@ -154,7 +168,6 @@ Asia/Aqtau
 <?php
 $timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::ASIA | DateTimeZone::PACIFIC );
 echo join( ', ', $timezone_identifiers );
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
@@ -201,7 +214,6 @@ $timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::PER_COUNTRY
 foreach( $timezone_identifiers as $identifier ) {
     echo "$identifier\n";
 }
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.