Skip to content
Open
Changes from all commits
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
38 changes: 25 additions & 13 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="&url.wiki.tzdb.names;">IANA Time Zone identifiers</link>.
</para>

<note>
<para>
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>.
</para>
</note>

</refsect1>

<refsect1 role="parameters">
Expand Down Expand Up @@ -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>
Expand All @@ -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;
Expand All @@ -154,7 +168,6 @@ Asia/Aqtau
<?php
$timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::ASIA | DateTimeZone::PACIFIC );
echo join( ', ', $timezone_identifiers );
?>
]]>
</programlisting>
&example.outputs.similar;
Expand Down Expand Up @@ -201,7 +214,6 @@ $timezone_identifiers = DateTimeZone::listIdentifiers( DateTimeZone::PER_COUNTRY
foreach( $timezone_identifiers as $identifier ) {
echo "$identifier\n";
}
?>
]]>
</programlisting>
&example.outputs.similar;
Expand Down
Loading