Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 30 additions & 17 deletions reference/datetime/datetimezone/listidentifiers.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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>
<para>
Return the list of <link xlink:href="https://en.wikipedia.org/wiki/Tz_database#Names_of_timezones">IANA Time Zone identifiers</link>.
</para>

<note>
<para>
It's possible to detect the client (browser) timezone with JavaScript using
<link xlink:href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions#timezone">Intl.DateTimeFormat</link>
or <link xlink:href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime#time_zones_and_offsets">Temporal.ZonedDateTime</link>.
</para>
</note>

</refsect1>

<refsect1 role="parameters">
Expand Down Expand Up @@ -96,25 +108,29 @@
&reftitle.examples;
<para>
<example>
<title>A <methodname>DateTimeZone::listIdentifiers</methodname> example</title>
<programlisting role="php">
<title>List identifiers with location comments</title>
<programlisting role="php" annotations="interactive">
<![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
// (Output omitted due to length)
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 omitted due to length)
]]>
</screen>
</example>
Expand All @@ -123,14 +139,13 @@ Africa/Asmara
<para>
<example>
<title>Listing identifiers for a specific region</title>
<programlisting role="php">
<programlisting role="php" annotations="interactive">
<![CDATA[
<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::ASIA );
for ($i=0; $i < 5; $i++) {
echo "$timezone_identifiers[$i]\n";
}
?>
]]>
</programlisting>
&example.outputs.similar;
Expand All @@ -149,12 +164,11 @@ Asia/Aqtau
<para>
<example>
<title>Listing identifiers for multiple regions</title>
<programlisting role="php">
<programlisting role="php" annotations="interactive">
<![CDATA[
<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::ASIA | DateTimeZone::PACIFIC );
echo join( ', ', $timezone_identifiers );
?>
]]>
</programlisting>
&example.outputs.similar;
Expand Down Expand Up @@ -194,14 +208,13 @@ Pacific/Tarawa, Pacific/Tongatapu, Pacific/Wake, Pacific/Wallis
<para>
<example>
<title>Listing identifiers for a single country</title>
<programlisting role="php">
<programlisting role="php" annotations="interactive">
<![CDATA[
<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::PER_COUNTRY, "UA" );
foreach( $timezone_identifiers as $identifier ) {
echo "$identifier\n";
}
?>
]]>
</programlisting>
&example.outputs.similar;
Expand Down