[DOC-CVS] [doc-en] master: Enable runnable (WASM) examples for datetime (#4887)

[email protected] (AllenJB via GitHub)
Newsgroups php.doc.cvs
Message-ID <[email protected]>
Author: AllenJB (AllenJB)
Committer: GitHub (web-flow)
Pusher: derickr
Date: 2025-10-31T10:32:20Z

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

Enable runnable (WASM) examples for datetime (#4887)

* Enable runnable (WASM) examples for datetime

Changed paths:
  M  reference/datetime/book.xml
  M  reference/datetime/dateinterval/construct.xml
  M  reference/datetime/dateinterval/createfromdatestring.xml
  M  reference/datetime/dateinterval/format.xml
  M  reference/datetime/dateperiod.xml
  M  reference/datetime/dateperiod/construct.xml
  M  reference/datetime/dateperiod/createfromiso8601string.xml
  M  reference/datetime/dateperiod/getdateinterval.xml
  M  reference/datetime/dateperiod/getenddate.xml
  M  reference/datetime/dateperiod/getrecurrences.xml
  M  reference/datetime/dateperiod/getstartdate.xml
  M  reference/datetime/datetime/createfromimmutable.xml
  M  reference/datetime/datetime/createfrominterface.xml
  M  reference/datetime/datetime/modify.xml
  M  reference/datetime/datetime/settimezone.xml
  M  reference/datetime/datetimeimmutable/construct.xml
  M  reference/datetime/datetimeimmutable/createfromformat.xml
  M  reference/datetime/datetimeimmutable/createfrominterface.xml
  M  reference/datetime/datetimeimmutable/createfrommutable.xml
  M  reference/datetime/datetimeimmutable/getlasterrors.xml
  M  reference/datetime/datetimeimmutable/modify.xml
  M  reference/datetime/datetimeimmutable/setdate.xml
  M  reference/datetime/datetimeimmutable/setisodate.xml
  M  reference/datetime/datetimeimmutable/settime.xml
  M  reference/datetime/datetimeimmutable/settimestamp.xml
  M  reference/datetime/datetimeimmutable/settimezone.xml
  M  reference/datetime/datetimeimmutable/sub.xml
  M  reference/datetime/datetimeinterface/diff.xml
  M  reference/datetime/datetimeinterface/format.xml
  M  reference/datetime/datetimeinterface/getoffset.xml
  M  reference/datetime/datetimeinterface/gettimestamp.xml
  M  reference/datetime/datetimeinterface/gettimezone.xml
  M  reference/datetime/datetimeinterface/serialize.xml
  M  reference/datetime/datetimeinterface/unserialize.xml
  M  reference/datetime/datetimezone/construct.xml
  M  reference/datetime/datetimezone/getlocation.xml
  M  reference/datetime/datetimezone/getoffset.xml
  M  reference/datetime/datetimezone/gettransitions.xml
  M  reference/datetime/datetimezone/listabbreviations.xml
  M  reference/datetime/examples.xml
  M  reference/datetime/formats.xml
  M  reference/datetime/functions/checkdate.xml
  M  reference/datetime/functions/date-default-timezone-get.xml
  M  reference/datetime/functions/date-default-timezone-set.xml
  M  reference/datetime/functions/date-parse-from-format.xml
  M  reference/datetime/functions/date-parse.xml
  M  reference/datetime/functions/date-sun-info.xml
  M  reference/datetime/functions/date-sunrise.xml
  M  reference/datetime/functions/date-sunset.xml
  M  reference/datetime/functions/date.xml
  M  reference/datetime/functions/getdate.xml
  M  reference/datetime/functions/gettimeofday.xml
  M  reference/datetime/functions/gmdate.xml
  M  reference/datetime/functions/gmmktime.xml
  M  reference/datetime/functions/gmstrftime.xml
  M  reference/datetime/functions/idate.xml
  M  reference/datetime/functions/localtime.xml
  M  reference/datetime/functions/microtime.xml
  M  reference/datetime/functions/mktime.xml
  M  reference/datetime/functions/strftime.xml
  M  reference/datetime/functions/strptime.xml
  M  reference/datetime/functions/strtotime.xml
  M  reference/datetime/functions/time.xml
  M  reference/datetime/functions/timezone-name-from-abbr.xml
  M  reference/datetime/functions/timezone-version-get.xml


Diff:

diff --git a/reference/datetime/book.xml b/reference/datetime/book.xml
index f0ac60ef17ed..31fef728e4dd 100644
--- a/reference/datetime/book.xml
+++ b/reference/datetime/book.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- $Revision$ -->
 
-<book xml:id="book.datetime" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+<book xml:id="book.datetime" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" annotations="interactive">
  <?phpdoc extension-membership="core"?>
  <title>Date and Time</title>
  <titleabbrev>Date/Time</titleabbrev>
diff --git a/reference/datetime/dateinterval/construct.xml b/reference/datetime/dateinterval/construct.xml
index 49c77f41e01a..ed300ac32a37 100644
--- a/reference/datetime/dateinterval/construct.xml
+++ b/reference/datetime/dateinterval/construct.xml
@@ -188,7 +188,9 @@ echo $interval->format("%d");
     </programlisting>
     &example.outputs;
     <screen role="php">
+<![CDATA[
 7
+]]>
     </screen>
    </example>
   </para>
@@ -199,11 +201,8 @@ echo $interval->format("%d");
     <programlisting role="php">
 <![CDATA[
 <?php
-
 $interval = new DateInterval('P1W2D');
 var_dump($interval);
-
-?>
 ]]>
     </programlisting>
     &example.outputs.82;
diff --git a/reference/datetime/dateinterval/createfromdatestring.xml b/reference/datetime/dateinterval/createfromdatestring.xml
index 9297cb0f9c83..0ec5291fc22b 100644
--- a/reference/datetime/dateinterval/createfromdatestring.xml
+++ b/reference/datetime/dateinterval/createfromdatestring.xml
@@ -106,7 +106,7 @@
   <para>
    <example>
     <title>Parsing valid date intervals</title>
-    <programlisting role="php">
+    <programlisting role="php" annotations="non-interactive">
 <![CDATA[
 <?php
 // Each set of intervals is equal.
@@ -130,7 +130,6 @@ $i = DateInterval::createFromDateString('1 day + 12 hours');
 
 $i = new DateInterval('PT3600S');
 $i = DateInterval::createFromDateString('3600 seconds');
-?>
 ]]>
     </programlisting>
    </example>
@@ -146,13 +145,14 @@ echo $i->format('%d %h %i'), "\n";
 
 $i = DateInterval::createFromDateString('1 year - 10 days');
 echo $i->format('%y %d'), "\n";
-?>
 ]]>
     </programlisting>
     &example.outputs;
-    <screen role="shell">
+    <screen>
+<![CDATA[
 449 2 70
 1 -10
+]]>
     </screen>
    </example>
   </para>
diff --git a/reference/datetime/dateinterval/format.xml b/reference/datetime/dateinterval/format.xml
index 600c10adc272..539923de8c8b 100644
--- a/reference/datetime/dateinterval/format.xml
+++ b/reference/datetime/dateinterval/format.xml
@@ -185,11 +185,8 @@
     <programlisting role="php">
      <![CDATA[
 <?php
-
 $interval = new DateInterval('P2Y4DT6H8M');
 echo $interval->format('%d days');
-
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -206,11 +203,8 @@ echo $interval->format('%d days');
     <programlisting role="php">
      <![CDATA[
 <?php
-
 $interval = new DateInterval('P32D');
 echo $interval->format('%d days');
-
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -230,7 +224,6 @@ echo $interval->format('%d days');
     <programlisting role="php">
      <![CDATA[
 <?php
-
 $january = new DateTime('2010-01-01');
 $february = new DateTime('2010-02-01');
 $interval = $february->diff($january);
@@ -241,8 +234,6 @@ echo $interval->format('%a total days')."\n";
 // While %d will only output the number of days not already covered by the
 // month.
 echo $interval->format('%m month, %d days');
-
-?>
 ]]>
     </programlisting>
     &example.outputs;
diff --git a/reference/datetime/dateperiod.xml b/reference/datetime/dateperiod.xml
index 960e46a3be57..92fef3d76c7c 100644
--- a/reference/datetime/dateperiod.xml
+++ b/reference/datetime/dateperiod.xml
@@ -162,7 +162,8 @@
       <para>
        <informalexample>
         <programlisting role="php">
-<![CDATA[<?php
+<![CDATA[
+<?php
 $start = new DateTime('2018-12-31 00:00:00');
 $end   = new DateTime('2021-12-31 00:00:00');
 $interval = new DateInterval('P1M');
@@ -184,15 +185,17 @@ echo $period->recurrences, "\n";
 
 $period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
 echo $period->recurrences, "\n";
-?>]]>
+]]>
          </programlisting>
          &example.outputs;
          <screen role="php">
+<![CDATA[
 5
 6
 7
 1
 0
+]]>
          </screen>
         </informalexample>
        </para>
diff --git a/reference/datetime/dateperiod/construct.xml b/reference/datetime/dateperiod/construct.xml
index 491c6164e37c..dcbf7fa328d7 100644
--- a/reference/datetime/dateperiod/construct.xml
+++ b/reference/datetime/dateperiod/construct.xml
@@ -210,12 +210,12 @@ $period = new DatePeriod($iso);
 foreach ($period as $date) {
     echo $date->format('Y-m-d')."\n";
 }
-?>
 ]]>
     </programlisting>
     &example.outputs;
     <screen>
 <![CDATA[
+Deprecated: Calling DatePeriod::__construct(string $isostr, int $options = 0) is deprecated, use DatePeriod::createFromISO8601String() instead in script on line 11
 2012-07-01
 2012-07-08
 2012-07-15
@@ -244,7 +244,6 @@ $period = new DatePeriod($start, $interval, $end,
 foreach ($period as $date) {
     echo $date->format('Y-m-d')."\n";
 }
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -273,7 +272,6 @@ $period = new DatePeriod($begin, $interval, $end, DatePeriod::EXCLUDE_START_DATE
 foreach ($period as $dt) {
     echo $dt->format('l Y-m-d'), "\n";
 }
-?>
 ]]>
     </programlisting>
     &example.outputs;
diff --git a/reference/datetime/dateperiod/createfromiso8601string.xml b/reference/datetime/dateperiod/createfromiso8601string.xml
index f077a62024bd..29aafc1534a6 100644
--- a/reference/datetime/dateperiod/createfromiso8601string.xml
+++ b/reference/datetime/dateperiod/createfromiso8601string.xml
@@ -122,7 +122,6 @@
 <![CDATA[
 <?php
 $iso = 'R4/2023-07-01T00:00:00Z/P7D';
-
 $period = DatePeriod::createFromISO8601String($iso);
 
 // By iterating over the DatePeriod object, all of the
@@ -130,7 +129,6 @@ $period = DatePeriod::createFromISO8601String($iso);
 foreach ($period as $date) {
     echo $date->format('Y-m-d'), "\n";
 }
-?>
 ]]>
     </programlisting>
     &example.outputs;
diff --git a/reference/datetime/dateperiod/getdateinterval.xml b/reference/datetime/dateperiod/getdateinterval.xml
index 78c4cf119d10..43110f0091fe 100644
--- a/reference/datetime/dateperiod/getdateinterval.xml
+++ b/reference/datetime/dateperiod/getdateinterval.xml
@@ -40,10 +40,9 @@
    <programlisting role="php">
 <![CDATA[
 <?php
-$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
+$period = DatePeriod::createFromIso8601String('R7/2016-05-16T00:00:00Z/P1D');
 $interval = $period->getDateInterval();
 echo $interval->format('%d day');
-?>
 ]]>
    </programlisting>
    &example.outputs;
diff --git a/reference/datetime/dateperiod/getenddate.xml b/reference/datetime/dateperiod/getenddate.xml
index aa029a0f0eb6..2a3edd72a0b6 100644
--- a/reference/datetime/dateperiod/getenddate.xml
+++ b/reference/datetime/dateperiod/getenddate.xml
@@ -60,7 +60,6 @@ $period = new DatePeriod(
 );
 $start = $period->getEndDate();
 echo $start->format(DateTime::ISO8601);
-?>
 ]]>
    </programlisting>
    &examples.outputs;
@@ -81,7 +80,6 @@ $period = new DatePeriod(
     7
 );
 var_dump($period->getEndDate());
-?>
 ]]>
    </programlisting>
    &example.outputs;
diff --git a/reference/datetime/dateperiod/getrecurrences.xml b/reference/datetime/dateperiod/getrecurrences.xml
index 0c7e1f91a1ef..99d628f2f29d 100644
--- a/reference/datetime/dateperiod/getrecurrences.xml
+++ b/reference/datetime/dateperiod/getrecurrences.xml
@@ -27,7 +27,7 @@
   &reftitle.returnvalues;
   <para>
    The number of recurrences as set by explicitly passing the
-   <literal>$recurrences</literal> to the contructor of the
+   <literal>$recurrences</literal> to the constructor of the
    <classname>DatePeriod</classname> class, or &null; otherwise.
   </para>
  </refsect1>
@@ -38,7 +38,8 @@
    <example>
     <title>Different values for <methodname>DatePeriod::getRecurrences</methodname></title>
     <programlisting role="php">
-<![CDATA[<?php
+<![CDATA[
+<?php
 $start = new DateTime('2018-12-31 00:00:00');
 $end   = new DateTime('2021-12-31 00:00:00');
 $interval = new DateInterval('P1M');
@@ -60,16 +61,18 @@ var_dump($period->getRecurrences());
 
 $period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
 var_dump($period->getRecurrences());
-?>]]>
+]]>
     </programlisting>
     &example.outputs;
     <screen role="php">
+<![CDATA[
 5
 5
 5
 
 NULL
 NULL
+]]>
     </screen>
    </example>
   </para>
diff --git a/reference/datetime/dateperiod/getstartdate.xml b/reference/datetime/dateperiod/getstartdate.xml
index 58cbb12e614b..22e19d1734d1 100644
--- a/reference/datetime/dateperiod/getstartdate.xml
+++ b/reference/datetime/dateperiod/getstartdate.xml
@@ -46,10 +46,9 @@
    <programlisting role="php">
 <![CDATA[
 <?php
-$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
+$period = DatePeriod::createFromIso8601String('R7/2016-05-16T00:00:00Z/P1D');
 $start = $period->getStartDate();
 echo $start->format(DateTime::ISO8601);
-?>
 ]]>
    </programlisting>
    &example.outputs;
diff --git a/reference/datetime/datetime/createfromimmutable.xml b/reference/datetime/datetime/createfromimmutable.xml
index 51fde5018075..965e3532f38d 100644
--- a/reference/datetime/datetime/createfromimmutable.xml
+++ b/reference/datetime/datetime/createfromimmutable.xml
@@ -70,13 +70,11 @@
   <para>
    <example>
     <title>Creating a mutable date time object</title>
-    <programlisting role="php">
+    <programlisting role="php" annotations="non-interactive">
 <![CDATA[
 <?php
 $date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");
-
 $mutable = DateTime::createFromImmutable( $date );
-?>
 ]]>
     </programlisting>
    </example>
diff --git a/reference/datetime/datetime/createfrominterface.xml b/reference/datetime/datetime/createfrominterface.xml
index a98ea99a0ee0..58234d1021c4 100644
--- a/reference/datetime/datetime/createfrominterface.xml
+++ b/reference/datetime/datetime/createfrominterface.xml
@@ -45,16 +45,14 @@
   <para>
    <example>
     <title>Creating a mutable date time object</title>
-    <programlisting role="php">
+    <programlisting role="php" annotations="non-interactive">
 <![CDATA[
 <?php
 $date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");
-
 $mutable = DateTime::createFromInterface($date);
 
 $date = new DateTime("2014-06-20 11:45 Europe/London");
 $also_mutable = DateTime::createFromInterface($date);
-?>
 ]]>
     </programlisting>
    </example>
diff --git a/reference/datetime/datetime/modify.xml b/reference/datetime/datetime/modify.xml
index 97d738de1345..46bd71034f16 100644
--- a/reference/datetime/datetime/modify.xml
+++ b/reference/datetime/datetime/modify.xml
@@ -92,9 +92,14 @@
 $date = new DateTime('2006-12-12');
 $date->modify('+1 day');
 echo $date->format('Y-m-d');
-?>
 ]]>
    </programlisting>
+   &example.outputs;
+   <screen>
+<![CDATA[
+2006-12-13
+]]>
+   </screen>
    <para>&style.procedural;</para>
    <programlisting role="php">
 <![CDATA[
@@ -102,10 +107,9 @@ echo $date->format('Y-m-d');
 $date = date_create('2006-12-12');
 date_modify($date, '+1 day');
 echo date_format($date, 'Y-m-d');
-?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 2006-12-13
@@ -124,7 +128,6 @@ echo $date->format('Y-m-d') . "\n";
 
 $date->modify('+1 month');
 echo $date->format('Y-m-d') . "\n";
-?>
 ]]>
    </programlisting>
    &example.outputs;
@@ -150,7 +153,6 @@ echo $date->format('Y-m-d H:i') . "\n";
 
 $date->modify('17:30');
 echo $date->format('Y-m-d H:i') . "\n";
-?>
 ]]>
    </programlisting>
    &example.outputs;
diff --git a/reference/datetime/datetime/settimezone.xml b/reference/datetime/datetime/settimezone.xml
index 2bfd15740162..dd2c5d1dd34c 100644
--- a/reference/datetime/datetime/settimezone.xml
+++ b/reference/datetime/datetime/settimezone.xml
@@ -70,9 +70,15 @@ echo $date->format('Y-m-d H:i:sP') . "\n";
 
 $date->setTimezone(new DateTimeZone('Pacific/Chatham'));
 echo $date->format('Y-m-d H:i:sP') . "\n";
-?>
 ]]>
    </programlisting>
+   &example.outputs;
+   <screen>
+<![CDATA[
+2000-01-01 00:00:00+12:00
+2000-01-01 01:45:00+13:45
+]]>
+   </screen>
    <para>&style.procedural;</para>
    <programlisting role="php">
 <![CDATA[
@@ -82,10 +88,9 @@ echo date_format($date, 'Y-m-d H:i:sP') . "\n";
 
 date_timezone_set($date, timezone_open('Pacific/Chatham'));
 echo date_format($date, 'Y-m-d H:i:sP') . "\n";
-?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 2000-01-01 00:00:00+12:00
diff --git a/reference/datetime/datetimeimmutable/construct.xml b/reference/datetime/datetimeimmutable/construct.xml
index a8b9063ad7a2..943fa828f2a8 100644
--- a/reference/datetime/datetimeimmutable/construct.xml
+++ b/reference/datetime/datetimeimmutable/construct.xml
@@ -129,9 +129,14 @@ try {
 }
 
 echo $date->format('Y-m-d');
-?>
 ]]>
    </programlisting>
+   &example.outputs;
+   <screen>
+<![CDATA[
+2000-01-01
+]]>
+   </screen>
    <para>&style.procedural;</para>
    <programlisting role="php">
 <![CDATA[
@@ -146,10 +151,9 @@ if (!$date) {
 }
 
 echo date_format($date, 'Y-m-d');
-?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 2000-01-01
@@ -161,7 +165,9 @@ echo date_format($date, 'Y-m-d');
    <programlisting role="php">
 <![CDATA[
 <?php
-// Specified date/time in your computer's time zone.
+date_default_timezone_set('America/Jamaica');
+
+// Specified date/time in PHP's default time zone.
 $date = new DateTimeImmutable('2000-01-01');
 echo $date->format('Y-m-d H:i:sP') . "\n";
 
@@ -169,7 +175,7 @@ echo $date->format('Y-m-d H:i:sP') . "\n";
 $date = new DateTimeImmutable('2000-01-01', new DateTimeZone('Pacific/Nauru'));
 echo $date->format('Y-m-d H:i:sP') . "\n";
 
-// Current date/time in your computer's time zone.
+// Current date/time in your PHP's default time zone.
 $date = new DateTimeImmutable();
 echo $date->format('Y-m-d H:i:sP') . "\n";
 
@@ -184,7 +190,6 @@ echo $date->format('Y-m-d H:i:sP') . "\n";
 // Non-existent values roll over.
 $date = new DateTimeImmutable('2000-02-30');
 echo $date->format('Y-m-d H:i:sP') . "\n";
-?>
 ]]>
    </programlisting>
    &example.outputs.similar;
@@ -198,6 +203,12 @@ echo $date->format('Y-m-d H:i:sP') . "\n";
 2000-03-01 00:00:00-05:00
 ]]>
    </screen>
+   <note>
+    <para>
+     Rolled over dates can be detected by checking for warnings using
+     <function>DateTimeImmutable::getLastErrors</function>.
+    </para>
+   </note>
   </example>
 
   <example>
@@ -210,14 +221,13 @@ $timeZone = new \DateTimeZone('Asia/Tokyo');
 $time = new \DateTimeImmutable();
 $time = $time->setTimezone($timeZone);
 
-echo $time->format('Y/m/d H:i:s'), "\n";
-?>
+echo $time->format('Y/m/d H:i:s e'), "\n";
 ]]>
    </programlisting>
    &example.outputs.similar;
    <screen>
 <![CDATA[
-2022/08/12 23:49:23
+2022/08/12 23:49:23 Asia/Tokyo
 ]]>
    </screen>
   </example>
@@ -230,7 +240,6 @@ echo $time->format('Y/m/d H:i:s'), "\n";
 $time = new \DateTimeImmutable("-1 year");
 
 echo $time->format('Y/m/d H:i:s'), "\n";
-?>
 ]]>
    </programlisting>
    &example.outputs.similar;
diff --git a/reference/datetime/datetimeimmutable/createfromformat.xml b/reference/datetime/datetimeimmutable/createfromformat.xml
index 2a6be6f434c6..0b3950341ad8 100644
--- a/reference/datetime/datetimeimmutable/createfromformat.xml
+++ b/reference/datetime/datetimeimmutable/createfromformat.xml
@@ -504,7 +504,6 @@
 <?php
 $date = DateTimeImmutable::createFromFormat('j-M-Y', '15-Feb-2009');
 echo $date->format('Y-m-d');
-?>
 ]]>
    </programlisting>
   </example>
@@ -515,9 +514,17 @@ echo $date->format('Y-m-d');
    <programlisting role="php">
 <![CDATA[
 <?php
-$date = DateTimeImmutable::createFromFormat(DateTimeInterface::ISO8601, '2004-02-12T15:19:21+00:00');
-$date = DateTimeImmutable::createFromFormat(DateTimeInterface::RFC3339_EXTENDED, '2013-10-14T09:00:00.000+02:00');
-?>
+$date = DateTimeImmutable::createFromFormat(
+    DateTimeInterface::ISO8601,
+    '2004-02-12T15:19:21+00:00'
+);
+echo $date->format('c e') . "\n";
+
+$date = DateTimeImmutable::createFromFormat(
+    DateTimeInterface::RFC3339_EXTENDED,
+    '2013-10-14T09:00:00.000+02:00'
+);
+echo $date->format('c e') . "\n";
 ]]>
    </programlisting>
    <para>
@@ -557,7 +564,6 @@ echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
 $format = 'i';
 $date = DateTimeImmutable::createFromFormat($format, '15');
 echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
-?>
 ]]>
    </programlisting>
    &example.outputs.similar;
@@ -579,7 +585,6 @@ Format: i; 2022-06-02 00:15:00
 <![CDATA[
 <?php
 echo DateTimeImmutable::createFromFormat('H\h i\m s\s','23h 15m 03s')->format('H:i:s');
-?>
 ]]>
    </programlisting>
    &example.outputs.similar;
@@ -596,7 +601,6 @@ echo DateTimeImmutable::createFromFormat('H\h i\m s\s','23h 15m 03s')->format('H
 <![CDATA[
 <?php
 echo DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2021-17-35 16:60:97')->format(DateTimeImmutable::RFC2822);
-?>
 ]]>
    </programlisting>
    &example.outputs.similar;
@@ -645,7 +649,6 @@ Sat, 04 Jun 2022 17:01:37 +0000
 <?php
 $d = DateTime::createFromFormat(DateTimeInterface::RFC1123, 'Mon, 3 Aug 2020 25:00:00 +0000');
 echo $d->format(DateTime::RFC1123), "\n";
-?>
 ]]>
    </programlisting>
    &example.outputs.similar;
@@ -691,7 +694,6 @@ $d = DateTimeImmutable::createFromFormat('Y-m-d H:i:s', '2021-17-35 16:60:97');
 echo $d->format(DateTimeImmutable::RFC2822), "\n\n";
 
 var_dump(DateTimeImmutable::GetLastErrors());
-?>
 ]]>
    </programlisting>
    &example.outputs.similar;
@@ -723,7 +725,6 @@ array(4) {
 <![CDATA[
 <?php
 print_r(date_parse_from_format('Gis', '60101'));
-?>
 ]]>
    </programlisting>
    &example.outputs.similar;
diff --git a/reference/datetime/datetimeimmutable/createfrominterface.xml b/reference/datetime/datetimeimmutable/createfrominterface.xml
index dd2de3ce81af..ea9eab8838e2 100644
--- a/reference/datetime/datetimeimmutable/createfrominterface.xml
+++ b/reference/datetime/datetimeimmutable/createfrominterface.xml
@@ -45,16 +45,14 @@
   <para>
    <example>
     <title>Creating an immutable date time object</title>
-    <programlisting role="php">
+    <programlisting role="php" annotations="non-interactive">
 <![CDATA[
 <?php
 $date = new DateTime("2014-06-20 11:45 Europe/London");
-
 $immutable = DateTimeImmutable::createFromInterface($date);
 
 $date = new DateTimeImmutable("2014-06-20 11:45 Europe/London");
 $also_immutable = DateTimeImmutable::createFromInterface($date);
-?>
 ]]>
     </programlisting>
    </example>
diff --git a/reference/datetime/datetimeimmutable/createfrommutable.xml b/reference/datetime/datetimeimmutable/createfrommutable.xml
index c3a7c5c2e4c5..c2840fb7c39a 100644
--- a/reference/datetime/datetimeimmutable/createfrommutable.xml
+++ b/reference/datetime/datetimeimmutable/createfrommutable.xml
@@ -70,13 +70,11 @@
   <para>
    <example>
     <title>Creating an immutable date time object</title>
-    <programlisting role="php">
+    <programlisting role="php" annotations="non-interactive">
 <![CDATA[
 <?php
 $date = new DateTime("2014-06-20 11:45 Europe/London");
-
 $immutable = DateTimeImmutable::createFromMutable( $date );
-?>
 ]]>
     </programlisting>
    </example>
diff --git a/reference/datetime/datetimeimmutable/getlasterrors.xml b/reference/datetime/datetimeimmutable/getlasterrors.xml
index fe970a9bd7a8..f903330bba6f 100644
--- a/reference/datetime/datetimeimmutable/getlasterrors.xml
+++ b/reference/datetime/datetimeimmutable/getlasterrors.xml
@@ -71,35 +71,63 @@ try {
     print_r(DateTimeImmutable::getLastErrors());
 
     // The real object-oriented way to do this is
-    // echo $e->getMessage();
+    echo $e->getMessage();
 }
 ?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 Array
 (
-   [warning_count] => 1
-   [warnings] => Array
-       (
-           [6] => Double timezone specification
-       )
-
-   [error_count] => 1
-   [errors] => Array
-       (
-           [0] => The timezone could not be found in the database
-       )
+    [warning_count] => 1
+    [warnings] => Array
+        (
+            [6] => Double timezone specification
+        )
 
+    [error_count] => 1
+    [errors] => Array
+        (
+            [0] => The timezone could not be found in the database
+        )
 )
+Failed to parse time string (asdfasdf) at position 0 (a): The timezone could not be found in the database
 ]]>
    </screen>
    <para>
     The indexes 6, and 0 in the example output refer to the character index in the string where the error occurred.
    </para>
   </example>
+  <example>
+   <title>Detecting rolled over dates</title>
+   <programlisting role="php">
+<![CDATA[
+<?php
+$date = DateTimeImmutable::createFromFormat('!Y-m-d', '2020-02-30');
+print_r(DateTimeImmutable::getLastErrors());
+]]>
+   </programlisting>
+   &example.outputs;
+   <screen>
+<![CDATA[
+Array
+(
+    [warning_count] => 1
+    [warnings] => Array
+        (
+            [10] => The parsed date was invalid
+        )
+
+    [error_count] => 0
+    [errors] => Array
+        (
+        )
+)
+]]>
+   </screen>
+  </example>
  </refsect1>
 
 
diff --git a/reference/datetime/datetimeimmutable/modify.xml b/reference/datetime/datetimeimmutable/modify.xml
index e4958c7a946d..ca14377daaf3 100644
--- a/reference/datetime/datetimeimmutable/modify.xml
+++ b/reference/datetime/datetimeimmutable/modify.xml
@@ -83,10 +83,9 @@
 $date = new DateTimeImmutable('2006-12-12');
 $newDate = $date->modify('+1 day');
 echo $newDate->format('Y-m-d');
-?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 2006-12-13
@@ -105,7 +104,6 @@ echo $newDate1->format('Y-m-d') . "\n";
 
 $newDate2 = $newDate1->modify('+1 month');
 echo $newDate2->format('Y-m-d') . "\n";
-?>
 ]]>
    </programlisting>
    &example.outputs;
diff --git a/reference/datetime/datetimeimmutable/setdate.xml b/reference/datetime/datetimeimmutable/setdate.xml
index 1009c22eb1aa..a5ae730dd877 100644
--- a/reference/datetime/datetimeimmutable/setdate.xml
+++ b/reference/datetime/datetimeimmutable/setdate.xml
@@ -70,10 +70,9 @@
 $date = new DateTimeImmutable();
 $newDate = $date->setDate(2001, 2, 3);
 echo $newDate->format('Y-m-d');
-?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 2001-02-03
@@ -95,7 +94,6 @@ echo $newDate->format('Y-m-d') . "\n";
 
 $newDate = $date->setDate(2001, 14, 3);
 echo $newDate->format('Y-m-d') . "\n";
-?>
 ]]>
    </programlisting>
    &example.outputs;
diff --git a/reference/datetime/datetimeimmutable/setisodate.xml b/reference/datetime/datetimeimmutable/setisodate.xml
index f443c96d52c1..f7d3200fe745 100644
--- a/reference/datetime/datetimeimmutable/setisodate.xml
+++ b/reference/datetime/datetimeimmutable/setisodate.xml
@@ -74,9 +74,15 @@ echo $newDate->format('Y-m-d') . "\n";
 
 $newDate = $date->setISODate(2008, 2, 7);
 echo $newDate->format('Y-m-d') . "\n";
-?>
 ]]>
    </programlisting>
+   &example.outputs;
+   <screen>
+<![CDATA[
+2008-01-07
+2008-01-13
+]]>
+   </screen>
    <para>&style.procedural;</para>
    <programlisting role="php">
 <![CDATA[
@@ -89,10 +95,9 @@ echo date_format($date, 'Y-m-d') . "\n";
 
 date_isodate_set($date, 2008, 2, 7);
 echo date_format($date, 'Y-m-d') . "\n";
-?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 2008-01-07
@@ -116,7 +121,6 @@ echo $newDate->format('Y-m-d') . "\n";
 
 $newDate = $date->setISODate(2008, 53, 7);
 echo $newDate->format('Y-m-d') . "\n";
-?>
 ]]>
    </programlisting>
    &example.outputs;
@@ -137,10 +141,9 @@ echo $newDate->format('Y-m-d') . "\n";
 $date = new DateTimeImmutable();
 $newDate = $date->setISODate(2008, 14);
 echo $newDate->format('n');
-?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 3
diff --git a/reference/datetime/datetimeimmutable/settime.xml b/reference/datetime/datetimeimmutable/settime.xml
index 62efd51e6562..c904cfb61b8b 100644
--- a/reference/datetime/datetimeimmutable/settime.xml
+++ b/reference/datetime/datetimeimmutable/settime.xml
@@ -111,7 +111,7 @@ echo $newDate->format('Y-m-d H:i:s') . "\n";
 ?>
 ]]>
    </programlisting>
-   &examples.outputs.similar;
+   &example.outputs.similar;
    <screen>
 <![CDATA[
 2001-01-01 14:55:00
diff --git a/reference/datetime/datetimeimmutable/settimestamp.xml b/reference/datetime/datetimeimmutable/settimestamp.xml
index 17447d61a9de..518ca854574a 100644
--- a/reference/datetime/datetimeimmutable/settimestamp.xml
+++ b/reference/datetime/datetimeimmutable/settimestamp.xml
@@ -55,10 +55,9 @@ echo $date->format('U = Y-m-d H:i:s') . "\n";
 
 $newDate = $date->setTimestamp(1171502725);
 echo $newDate->format('U = Y-m-d H:i:s') . "\n";
-?>
 ]]>
    </programlisting>
-   &examples.outputs.similar;
+   &example.outputs.similar;
    <screen>
 <![CDATA[
 1272508903 = 2010-04-28 22:41:43
diff --git a/reference/datetime/datetimeimmutable/settimezone.xml b/reference/datetime/datetimeimmutable/settimezone.xml
index 46bfd9595091..a6f801f9da5a 100644
--- a/reference/datetime/datetimeimmutable/settimezone.xml
+++ b/reference/datetime/datetimeimmutable/settimezone.xml
@@ -58,7 +58,7 @@ echo $newDate->format('Y-m-d H:i:sP') . "\n";
 ?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 2000-01-01 00:00:00+12:00
diff --git a/reference/datetime/datetimeimmutable/sub.xml b/reference/datetime/datetimeimmutable/sub.xml
index 8c0214b4bad8..8c60a04fd360 100644
--- a/reference/datetime/datetimeimmutable/sub.xml
+++ b/reference/datetime/datetimeimmutable/sub.xml
@@ -93,7 +93,7 @@ echo $newDate->format('Y-m-d') . "\n";
 ?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 2000-01-10
diff --git a/reference/datetime/datetimeinterface/diff.xml b/reference/datetime/datetimeinterface/diff.xml
index 9f8c6debf07b..028ba74e8419 100644
--- a/reference/datetime/datetimeinterface/diff.xml
+++ b/reference/datetime/datetimeinterface/diff.xml
@@ -101,9 +101,14 @@ $origin = new DateTimeImmutable('2009-10-11');
 $target = new DateTimeImmutable('2009-10-13');
 $interval = $origin->diff($target);
 echo $interval->format('%R%a days');
-?>
 ]]>
    </programlisting>
+   &example.outputs;
+   <screen>
+<![CDATA[
++2 days
+]]>
+   </screen>
    <para>&style.procedural;</para>
    <programlisting role="php">
 <![CDATA[
@@ -112,10 +117,9 @@ $origin = date_create('2009-10-11');
 $target = date_create('2009-10-13');
 $interval = date_diff($origin, $target);
 echo $interval->format('%R%a days');
-?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 +2 days
@@ -133,7 +137,6 @@ $originalTime = new DateTimeImmutable("2021-10-30 09:00:00 Europe/London");
 $targetTime = new DateTimeImmutable("2021-10-31 08:30:00 Europe/London");
 $interval = $originalTime->diff($targetTime);
 echo $interval->format("%H:%I:%S (Full days: %a)"), "\n";
-?>
 ]]>
    </programlisting>
    &example.outputs;
@@ -159,7 +162,6 @@ $originalTime = new DateTimeImmutable("2023-01-01 UTC");
 $targetTime = new DateTimeImmutable("2023-12-31 UTC");
 $interval = $originalTime->diff($targetTime);
 echo "Full days: ", $interval->format("%a"), "\n";
-?>
 ]]>
    </programlisting>
    &example.outputs;
@@ -188,7 +190,6 @@ $date2 = new DateTime("tomorrow");
 var_dump($date1 == $date2);
 var_dump($date1 < $date2);
 var_dump($date1 > $date2);
-?>
 ]]>
   </programlisting>
   &example.outputs;
diff --git a/reference/datetime/datetimeinterface/format.xml b/reference/datetime/datetimeinterface/format.xml
index 39a49ecbf57b..37bbc0650fc8 100644
--- a/reference/datetime/datetimeinterface/format.xml
+++ b/reference/datetime/datetimeinterface/format.xml
@@ -406,6 +406,12 @@ echo $date->format('Y-m-d H:i:s');
 ?>
 ]]>
     </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+2000-01-01 00:00:00
+]]>
+    </screen>
     <para>&style.procedural;</para>
     <programlisting role="php">
 <![CDATA[
diff --git a/reference/datetime/datetimeinterface/getoffset.xml b/reference/datetime/datetimeinterface/getoffset.xml
index ac66382e5bac..2491e26a835a 100644
--- a/reference/datetime/datetimeinterface/getoffset.xml
+++ b/reference/datetime/datetimeinterface/getoffset.xml
@@ -61,9 +61,15 @@ $summer = new DateTimeImmutable('2008-06-21', new DateTimeZone('America/New_York
 
 echo $winter->getOffset() . "\n";
 echo $summer->getOffset() . "\n";
-?>
 ]]>
    </programlisting>
+   &example.outputs;
+   <screen>
+<![CDATA[
+-18000
+-14400
+]]>
+   </screen>
    <para>&style.procedural;</para>
    <programlisting role="php">
 <![CDATA[
@@ -73,10 +79,9 @@ $summer = date_create('2008-06-21', timezone_open('America/New_York'));
 
 echo date_offset_get($winter) . "\n";
 echo date_offset_get($summer) . "\n";
-?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 -18000
diff --git a/reference/datetime/datetimeinterface/gettimestamp.xml b/reference/datetime/datetimeinterface/gettimestamp.xml
index b20ed959bb2b..6d9c0d842576 100644
--- a/reference/datetime/datetimeinterface/gettimestamp.xml
+++ b/reference/datetime/datetimeinterface/gettimestamp.xml
@@ -98,19 +98,23 @@
 <?php
 $date = new DateTimeImmutable();
 echo $date->getTimestamp();
-?>
 ]]>
    </programlisting>
+   &example.outputs.similar;
+   <screen>
+<![CDATA[
+1272509157
+]]>
+   </screen>
    <para>&style.procedural;</para>
    <programlisting role="php">
 <![CDATA[
 <?php
 $date = date_create();
 echo date_timestamp_get($date);
-?>
 ]]>
    </programlisting>
-   &examples.outputs.similar;
+   &example.outputs.similar;
    <screen>
 <![CDATA[
 1272509157
@@ -133,10 +137,9 @@ $milli = (int) $date->format('Uv'); // Timestamp in milliseconds
 $micro = (int) $date->format('Uu'); // Timestamp in microseconds
 
 echo $milli, "\n", $micro, "\n";
-?>
 ]]>
    </programlisting>
-   &examples.outputs.similar;
+   &example.outputs.similar;
    <screen>
 <![CDATA[
 1674057635586
diff --git a/reference/datetime/datetimeinterface/gettimezone.xml b/reference/datetime/datetimeinterface/gettimezone.xml
index 87048da0957c..f00b38626749 100644
--- a/reference/datetime/datetimeinterface/gettimezone.xml
+++ b/reference/datetime/datetimeinterface/gettimezone.xml
@@ -57,23 +57,27 @@
    <programlisting role="php">
 <![CDATA[
 <?php
-$date = new DateTimeImmutable(null, new DateTimeZone('Europe/London'));
+$date = new DateTimeImmutable("now", new DateTimeZone('Europe/London'));
 $tz = $date->getTimezone();
 echo $tz->getName();
-?>
 ]]>
    </programlisting>
+   &example.outputs;
+   <screen>
+<![CDATA[
+Europe/London
+]]>
+   </screen>
    <para>&style.procedural;</para>
    <programlisting role="php">
 <![CDATA[
 <?php
-$date = date_create(null, timezone_open('Europe/London'));
+$date = date_create("now", timezone_open('Europe/London'));
 $tz = date_timezone_get($date);
 echo timezone_name_get($tz);
-?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 Europe/London
diff --git a/reference/datetime/datetimeinterface/serialize.xml b/reference/datetime/datetimeinterface/serialize.xml
index 5615dca18157..090575572e98 100644
--- a/reference/datetime/datetimeinterface/serialize.xml
+++ b/reference/datetime/datetimeinterface/serialize.xml
@@ -49,10 +49,9 @@
 <?php
 $date = new DateTime('2025-03-27');
 var_dump(serialize($date));
-?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 string(114) "O:8:"DateTime":3:{s:4:"date";s:26:"2025-03-27 00:00:00.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:3:"UTC";}"
diff --git a/reference/datetime/datetimeinterface/unserialize.xml b/reference/datetime/datetimeinterface/unserialize.xml
index f60f36c4bb9e..4af5fb5dab72 100644
--- a/reference/datetime/datetimeinterface/unserialize.xml
+++ b/reference/datetime/datetimeinterface/unserialize.xml
@@ -57,10 +57,9 @@
 <?php
 $serializedDate = 'O:8:"DateTime":3:{s:4:"date";s:26:"2025-03-27 00:00:00.000000";s:13:"timezone_type";i:3;s:8:"timezone";s:3:"UTC";}';
 var_dump(unserialize($serializedDate));
-?>
 ]]>
    </programlisting>
-   &examples.outputs;
+   &example.outputs;
    <screen>
 <![CDATA[
 object(DateTime)#1 (3) {
diff --git a/reference/datetime/datetimezone/construct.xml b/reference/datetime/datetimezone/construct.xml
index fe470051e11c..51c36dd7187c 100644
--- a/reference/datetime/datetimezone/construct.xml
+++ b/reference/datetime/datetimezone/construct.xml
@@ -113,17 +113,18 @@ foreach ($timezones as $tz) {
     $tzo = new DateTimeZone($tz);
 
     $local = $d->setTimezone($tzo);
-    echo $local->format(DateTimeInterface::RFC2822 . ' — e'), "\n";
+    echo $local->format(DateTimeInterface::RFC2822 . ' — e') . "\n";
 }
-?>
 ]]>
     </programlisting>
     &example.outputs;
     <screen>
+<![CDATA[
 Thu, 02 Jun 2022 16:44:48 +0100 — Europe/London
 Thu, 02 Jun 2022 20:29:48 +0445 — +04:45
 Thu, 02 Jun 2022 09:44:48 -0600 — -06:00
 Thu, 02 Jun 2022 17:44:48 +0200 — CEST
+]]>
     </screen>
    </example>
   </para>
@@ -140,16 +141,17 @@ $timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');
 foreach ($timezones as $tz) {
     try {
         $mars = new DateTimeZone($tz);
+        echo $mars->getName() . "\n";
     } catch(Exception $e) {
-        echo $e->getMessage() . '<br />';
+        echo $e->getMessage() . "\n";
     }
 }
-?>
 ]]>
     </programlisting>
     &example.outputs;
     <screen>
 <![CDATA[
+Europe/London
 DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos)
 DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Jupiter/Europa)
 ]]>
diff --git a/reference/datetime/datetimezone/getlocation.xml b/reference/datetime/datetimezone/getlocation.xml
index 095e18af0db4..98ccd021b647 100644
--- a/reference/datetime/datetimezone/getlocation.xml
+++ b/reference/datetime/datetimezone/getlocation.xml
@@ -51,7 +51,6 @@
 $tz = new DateTimeZone("Asia/Jakarta");
 print_r($tz->getLocation());
 print_r(timezone_location_get($tz));
-?>
 ]]>
     </programlisting>
     &example.outputs;
diff --git a/reference/datetime/datetimezone/getoffset.xml b/reference/datetime/datetimezone/getoffset.xml
index f04365721545..f20b744b2bad 100644
--- a/reference/datetime/datetimezone/getoffset.xml
+++ b/reference/datetime/datetimezone/getoffset.xml
@@ -75,9 +75,14 @@ $timeOffset = $dateTimeZoneJapan->getOffset($dateTimeTaipei);
 
 // Should show int(32400) (for dates after Sat Sep 8 01:00:00 1951 JST).
 var_dump($timeOffset);
-?>
 ]]>
     </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+int(32400)
+]]>
+    </screen>
    </example>
   </para>
  </refsect1>
diff --git a/reference/datetime/datetimezone/gettransitions.xml b/reference/datetime/datetimezone/gettransitions.xml
index ed00ac7ba39c..632e41790819 100644
--- a/reference/datetime/datetimezone/gettransitions.xml
+++ b/reference/datetime/datetimezone/gettransitions.xml
@@ -128,29 +128,29 @@ Array
 (
     [0] => Array
         (
-            [ts] => -9223372036854775808
-            [time] => -292277022657-01-27T08:29:52+0000
-            [offset] => 3600
-            [isdst] => 1
-            [abbr] => BST
+            [ts] => -2147483648
+            [time] => 1901-12-13T20:45:52+00:00
+            [offset] => -75
+            [isdst] =>
+            [abbr] => LMT
         )
 
     [1] => Array
         (
-            [ts] => -1691964000
-            [time] => 1916-05-21T02:00:00+0000
-            [offset] => 3600
-            [isdst] => 1
-            [abbr] => BST
+            [ts] => 442304971
+            [time] => 1847-12-01T00:01:15+00:00
+            [offset] => 0
+            [isdst] =>
+            [abbr] => GMT
         )
 
     [2] => Array
         (
-            [ts] => -1680472800
-            [time] => 1916-10-01T02:00:00+0000
-            [offset] => 0
-            [isdst] => 
-            [abbr] => GMT
+            [ts] => -1691964000
+            [time] => 1916-05-21T02:00:00+00:00
+            [offset] => 3600
+            [isdst] => 1
+            [abbr] => BST
         )
 
 )
@@ -177,8 +177,8 @@ Array
 (
     [0] => Array
         (
-            [ts] => 1654184161
-            [time] => 2022-06-02T15:36:01+0000
+            [ts] => 1759058251
+            [time] => 2025-09-28T11:17:31+00:00
             [offset] => 3600
             [isdst] => 1
             [abbr] => BST
@@ -186,8 +186,8 @@ Array
 
     [1] => Array
         (
-            [ts] => 1667091600
-            [time] => 2022-10-30T01:00:00+0000
+            [ts] => 1761440400
+            [time] => 2025-10-26T01:00:00+00:00
             [offset] => 0
             [isdst] => 
             [abbr] => GMT
@@ -195,8 +195,8 @@ Array
 
     [2] => Array
         (
-            [ts] => 1679792400
-            [time] => 2023-03-26T01:00:00+0000
+            [ts] => 1774746000
+            [time] => 2026-03-29T01:00:00+00:00
             [offset] => 3600
             [isdst] => 1
             [abbr] => BST
diff --git a/reference/datetime/datetimezone/listabbreviations.xml b/reference/datetime/datetimezone/listabbreviations.xml
index 132ad1227c92..1875228ac329 100644
--- a/reference/datetime/datetimezone/listabbreviations.xml
+++ b/reference/datetime/datetimezone/listabbreviations.xml
@@ -58,7 +58,6 @@
 <?php
 $timezone_abbreviations = DateTimeZone::listAbbreviations();
 print_r($timezone_abbreviations["acst"]);
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
@@ -68,30 +67,44 @@ Array
 (
     [0] => Array
         (
-            [dst] => 1
-            [offset] => -14400
-            [timezone_id] => America/Porto_Acre
+            [dst] =>
+            [offset] => 34200
+            [timezone_id] => Australia/Adelaide
         )
 
     [1] => Array
         (
-            [dst] => 1
-            [offset] => -14400
-            [timezone_id] => America/Eirunepe
+            [dst] =>
+            [offset] => 34200
+            [timezone_id] => Australia/Broken_Hill
         )
 
     [2] => Array
         (
-            [dst] => 1
-            [offset] => -14400
-            [timezone_id] => America/Rio_Branco
+            [dst] =>
+            [offset] => 34200
+            [timezone_id] => Australia/Darwin
         )
 
     [3] => Array
         (
-            [dst] => 1
-            [offset] => -14400
-            [timezone_id] => Brazil/Acre
+            [dst] =>
+            [offset] => 34200
+            [timezone_id] => Australia/North
+        )
+
+    [4] => Array
+        (
+            [dst] =>
+            [offset] => 34200
+            [timezone_id] => Australia/South
+        )
+
+    [5] => Array
+        (
+            [dst] =>
+            [offset] => 34200
+            [timezone_id] => Australia/Yancowinna
         )
 
 )
diff --git a/reference/datetime/examples.xml b/reference/datetime/examples.xml
index 1c854718c3f6..e8367cc54cb4 100644
--- a/reference/datetime/examples.xml
+++ b/reference/datetime/examples.xml
@@ -24,7 +24,6 @@ $dt = new DateTimeImmutable("2015-11-01 00:00:00", new DateTimeZone("America/New
 echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
 $dt = $dt->add(new DateInterval("PT3H"));
 echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -51,7 +50,6 @@ $dt = new DateTimeImmutable("2015-11-01 00:00:00", new DateTimeZone("America/New
 echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
 $dt = $dt->modify("+24 hours");
 echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -84,7 +82,6 @@ $dt = new DateTimeImmutable("2016-01-31 00:00:00", new DateTimeZone("America/New
 echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
 $dt = $dt->modify("+1 month");
 echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -116,7 +113,6 @@ $dt = new DateTimeImmutable("2016-01-31 00:00:00", new DateTimeZone("America/New
 echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
 $dt = $dt->modify("last day of next month");
 echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
-?>
 ]]>
     </programlisting>
     &example.outputs;
diff --git a/reference/datetime/formats.xml b/reference/datetime/formats.xml
index 23f787b7e941..f86bd5f99c72 100644
--- a/reference/datetime/formats.xml
+++ b/reference/datetime/formats.xml
@@ -84,7 +84,6 @@
 <?php
 $res = date_parse("2015-09-31");
 var_dump($res["warnings"]);
-?>
 ]]>
      </programlisting>
      &example.outputs;
diff --git a/reference/datetime/functions/checkdate.xml b/reference/datetime/functions/checkdate.xml
index 947a66c5bff8..629ed5a32cf7 100644
--- a/reference/datetime/functions/checkdate.xml
+++ b/reference/datetime/functions/checkdate.xml
@@ -71,7 +71,6 @@
 <?php
 var_dump(checkdate(12, 31, 2000));
 var_dump(checkdate(2, 29, 2001));
-?>
 ]]>
     </programlisting>
     &example.outputs;
diff --git a/reference/datetime/functions/date-default-timezone-get.xml b/reference/datetime/functions/date-default-timezone-get.xml
index bfbc09e7dd58..b949851ef160 100644
--- a/reference/datetime/functions/date-default-timezone-get.xml
+++ b/reference/datetime/functions/date-default-timezone-get.xml
@@ -59,14 +59,12 @@
 date_default_timezone_set('Europe/London');
 
 if (date_default_timezone_get()) {
-    echo 'date_default_timezone_set: ' . date_default_timezone_get() . '<br />';
+    echo 'date_default_timezone_set: ' . date_default_timezone_get() . "\n";
 }
 
 if (ini_get('date.timezone')) {
     echo 'date.timezone: ' . ini_get('date.timezone');
 }
-
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
@@ -86,7 +84,6 @@ date.timezone: Europe/London
 <?php
 date_default_timezone_set('America/Los_Angeles');
 echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T');
-?>
 ]]>
     </programlisting>
     &example.outputs;
diff --git a/reference/datetime/functions/date-default-timezone-set.xml b/reference/datetime/functions/date-default-timezone-set.xml
index 8ba1471693ed..48d0299583cb 100644
--- a/reference/datetime/functions/date-default-timezone-set.xml
+++ b/reference/datetime/functions/date-default-timezone-set.xml
@@ -64,13 +64,13 @@
 date_default_timezone_set('America/Los_Angeles');
 
 $script_tz = date_default_timezone_get();
+$ini_tz = ini_get('date.timezone');
 
-if (strcmp($script_tz, ini_get('date.timezone'))){
+if (strcmp($script_tz, $ini_tz)){
     echo 'Script timezone differs from ini-set timezone.';
 } else {
     echo 'Script timezone and ini-set timezone match.';
 }
-?>
 ]]>
     </programlisting>
    </example>
diff --git a/reference/datetime/functions/date-parse-from-format.xml b/reference/datetime/functions/date-parse-from-format.xml
index f658ed5d22d3..a0da7f93996a 100644
--- a/reference/datetime/functions/date-parse-from-format.xml
+++ b/reference/datetime/functions/date-parse-from-format.xml
@@ -146,7 +146,6 @@
 <?php
 $date = "6.1.2009 13:00+01:00";
 print_r(date_parse_from_format("j.n.Y H:iP", $date));
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -160,7 +159,7 @@ Array
     [hour] => 13
     [minute] => 0
     [second] => 0
-    [fraction] =>
+    [fraction] => 0
     [warning_count] => 0
     [warnings] => Array
         (
@@ -194,7 +193,6 @@ echo "Warnings count: ", $parsed['warning_count'], "\n";
 foreach ($parsed['warnings'] as $position => $message) {
     echo "\tOn position {$position}: {$message}\n";
 }
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -220,7 +218,6 @@ echo "Errors count: ", $parsed['error_count'], "\n";
 foreach ($parsed['errors'] as $position => $message) {
     echo "\tOn position {$position}: {$message}\n";
 }
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -228,7 +225,7 @@ foreach ($parsed['errors'] as $position => $message) {
 <![CDATA[
 Errors count: 3
 	On position 15: A two digit hour could not be found
-	On position 19: Data missing
+	On position 19: Not enough data available to satisfy format
 ]]>
     </screen>
    </example>
diff --git a/reference/datetime/functions/date-parse.xml b/reference/datetime/functions/date-parse.xml
index edf1a602f40e..f2c33570228f 100644
--- a/reference/datetime/functions/date-parse.xml
+++ b/reference/datetime/functions/date-parse.xml
@@ -147,7 +147,6 @@
 <![CDATA[
 <?php
 var_dump(date_parse("2006-12-12 10:00:00.5"));
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -197,7 +196,6 @@ array(12) {
 <![CDATA[
 <?php
 var_dump(date_parse("June 2nd, 2022, 10:28:17 BST"));
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -248,7 +246,6 @@ array(16) {
 <![CDATA[
 <?php
 var_dump(date_parse("June 2nd, 2022, 10:28:17 Europe/London"));
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -301,7 +298,6 @@ array(14) {
 <![CDATA[
 <?php
 var_dump(date_parse("June 2nd, 2022"));
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -350,7 +346,6 @@ array(12) {
 <![CDATA[
 <?php
 var_dump(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour"));
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -417,7 +412,6 @@ array(13) {
 <![CDATA[
 <?php
 var_dump(date_parse("Thursday, June 2nd"));
-?>
 ]]>
     </programlisting>
     &example.outputs;
diff --git a/reference/datetime/functions/date-sun-info.xml b/reference/datetime/functions/date-sun-info.xml
index 4efd5dc59237..6b9a781ee1d7 100644
--- a/reference/datetime/functions/date-sun-info.xml
+++ b/reference/datetime/functions/date-sun-info.xml
@@ -179,7 +179,6 @@ $sun_info = date_sun_info(strtotime("2006-12-12"), 31.7667, 35.2333);
 foreach ($sun_info as $key => $val) {
     echo "$key: " . date("H:i:s", $val) . "\n";
 }
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -218,7 +217,6 @@ foreach ($si as $key => $value) {
         ": {$key}",
         "\n";
 }
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -246,7 +244,6 @@ never: sunset
 <?php
 $si = date_sun_info(strtotime("2022-06-26"), 69.68, 18.94);
 print_r($si);
-?>
 ]]>
     </programlisting>
     &example.outputs;
@@ -280,7 +277,6 @@ $diff = $si['sunset'] - $si['sunrise'];
 echo "Length of day: ",
     floor($diff / 3600), "h ",
     floor(($diff % 3600) / 60), "s\n";
-?>
 ]]>
     </programlisting>
     &example.outputs;
diff --git a/reference/datetime/functions/date-sunrise.xml b/reference/datetime/functions/date-sunrise.xml
index ac4ad7b4ad5c..4223ab3c479d 100644
--- a/reference/datetime/functions/date-sunrise.xml
+++ b/reference/datetime/functions/date-sunrise.xml
@@ -220,13 +220,13 @@ offset: +1 GMT
 */
 
 echo date("D M d Y"). ', sunrise time : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);
-
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
     <screen>
 <![CDATA[
+Deprecated: Constant SUNFUNCS_RET_STRING is deprecated in script on line 10
+Deprecated: Function date_sunrise() is deprecated since 8.1, use date_sun_info() instead in script on line 10
 Mon Dec 20 2004, sunrise time : 08:54
 ]]>
     </screen>
@@ -238,12 +238,13 @@ Mon Dec 20 2004, sunrise time : 08:54
 <?php
 $solstice = strtotime('2017-12-21');
 var_dump(date_sunrise($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
-?>
 ]]>
     </programlisting>
     &example.outputs;
     <screen>
 <![CDATA[
+Deprecated: Constant SUNFUNCS_RET_STRING is deprecated in script on line 3
+Deprecated: Function date_sunrise() is deprecated since 8.1, use date_sun_info() instead in script on line 3
 bool(false)
 ]]>
     </screen>
diff --git a/reference/datetime/functions/date-sunset.xml b/reference/datetime/functions/date-sunset.xml
index 3f6536cae5ba..a7da44a69b05 100644
--- a/reference/datetime/functions/date-sunset.xml
+++ b/reference/datetime/functions/date-sunset.xml
@@ -222,13 +222,13 @@ offset: +1 GMT
 */
 
 echo date("D M d Y"). ', sunset time : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);
-
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
     <screen>
 <![CDATA[
+Deprecated: Constant SUNFUNCS_RET_STRING is deprecated in script on line 10
+Deprecated: Function date_sunset() is deprecated since 8.1, use date_sun_info() instead in script on line 10
 Mon Dec 20 2004, sunset time : 18:13
 ]]>
     </screen>
@@ -240,12 +240,13 @@ Mon Dec 20 2004, sunset time : 18:13
 <?php
 $solstice = strtotime('2017-12-21');
 var_dump(date_sunset($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
-?>
 ]]>
     </programlisting>
     &example.outputs;
     <screen>
 <![CDATA[
+Deprecated: Constant SUNFUNCS_RET_STRING is deprecated in script on line 3
+Deprecated: Function date_sunset() is deprecated since 8.1, use date_sun_info() instead in script on line 3
 bool(false)
 ]]>
     </screen>
diff --git a/reference/datetime/functions/date.xml b/reference/datetime/functions/date.xml
index 4bff3212903f..8d7b375b05ad 100644
--- a/reference/datetime/functions/date.xml
+++ b/reference/datetime/functions/date.xml
@@ -106,21 +106,20 @@ date_default_timezone_set('UTC');
 
 
 // Prints something like: Monday
-echo date("l");
+echo date("l") . "\n";
 
 // Prints something like: Monday 8th of August 2005 03:12:46 PM
-echo date('l jS \of F Y h:i:s A');
+echo date('l jS \of F Y h:i:s A') . "\n";
 
 // Prints: July 1, 2000 is on a Saturday
-echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
+echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000)) . "\n";
 
 /* use the constants in the format parameter */
 // prints something like: Wed, 25 Sep 2013 15:28:57 -0700
-echo date(DATE_RFC2822);
+echo date(DATE_RFC2822) . "\n";
 
 // prints something like: 2000-07-01T00:00:00+00:00
 echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
-?>
 ]]>
     </programlisting>
    </example>
@@ -137,35 +136,10 @@ echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
 <?php
 // prints something like: Wednesday the 15th
 echo date('l \t\h\e jS');
-?>
 ]]>
     </programlisting>
    </example>
   </para>
-  <para>
-   It is possible to use <function>date</function> and
-   <function>mktime</function> together to find dates in the future
-   or the past.
-   <example>
-    <title><function>date</function> and <function>mktime</function> example</title>
-    <programlisting role="php">
-<![CDATA[
-<?php
-$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
-$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
-$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
-?>
-]]>
-    </programlisting>
-   </example>
-   <note>
-    <para>
-     This can be more reliable than simply adding or subtracting the number
-     of seconds in a day or month to a timestamp because of daylight saving
-     time.
-    </para>
-   </note>
-  </para>
   <para>
    Some examples of <function>date</function> formatting. Note that
    you should escape any other characters, as any which currently
@@ -180,18 +154,18 @@ $nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
 <?php
 // Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
 // Mountain Standard Time (MST) Time Zone
-
-$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
-$today = date("m.d.y");                         // 03.10.01
-$today = date("j, n, Y");                       // 10, 3, 2001
-$today = date("Ymd");                           // 20010310
-$today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
-$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
-$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
-$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
-$today = date("H:i:s");                         // 17:16:18
-$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)
-?>
+date_default_timezone_set("America/Phoenix");
+
+echo date("F j, Y, g:i a") . "\n";                 // March 10, 2001, 5:16 pm
+echo date("m.d.y") . "\n";                         // 03.10.01
+echo date("j, n, Y") . "\n";                       // 10, 3, 2001
+echo date("Ymd") . "\n";                           // 20010310
+echo date('h-i-s, j-m-y, it is w Day') . "\n";     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
+echo date('\i\t \i\s \t\h\e jS \d\a\y.') . "\n";   // it is the 10th day.
+echo date("D M j G:i:s T Y") . "\n";               // Sat Mar 10 17:16:18 MST 2001
+echo date('H:m:s \m \i\s\ \m\o\n\t\h') . "\n";     // 17:03:18 m is month
+echo date("H:i:s") . "\n";                         // 17:16:18
+echo date("Y-m-d H:i:s") . "\n";                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)
 ]]>
     </programlisting>
    </example>
diff --git a/reference/datetime/functions/getdate.xml b/reference/datetime/functions/getdate.xml
index 1a419eeecf06..8e433bcad9f4 100644
--- a/reference/datetime/functions/getdate.xml
+++ b/reference/datetime/functions/getdate.xml
@@ -150,7 +150,6 @@
 <?php
 $today = getdate();
 print_r($today);
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
@@ -160,15 +159,15 @@ Array
 (
     [seconds] => 40
     [minutes] => 58
-    [hours]   => 21
-    [mday]    => 17
-    [wday]    => 2
-    [mon]     => 6
-    [year]    => 2003
-    [yday]    => 167
+    [hours] => 21
+    [mday] => 17
+    [wday] => 2
+    [mon] => 6
+    [year] => 2003
+    [yday] => 167
     [weekday] => Tuesday
-    [month]   => June
-    [0]       => 1055901520
+    [month] => June
+    [0] => 1055901520
 )
 ]]>
     </screen>
diff --git a/reference/datetime/functions/gettimeofday.xml b/reference/datetime/functions/gettimeofday.xml
index 25977277dd8a..6c93c0f88b96 100644
--- a/reference/datetime/functions/gettimeofday.xml
+++ b/reference/datetime/functions/gettimeofday.xml
@@ -79,7 +79,6 @@
 print_r(gettimeofday());
 
 echo gettimeofday(true);
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
@@ -92,7 +91,6 @@ Array
     [minuteswest] => 0
     [dsttime] => 1
 )
-
 1073504408.23910
 ]]>
     </screen>
diff --git a/reference/datetime/functions/gmdate.xml b/reference/datetime/functions/gmdate.xml
index 90c4dbcab11c..9468fc66c0d0 100644
--- a/reference/datetime/functions/gmdate.xml
+++ b/reference/datetime/functions/gmdate.xml
@@ -75,18 +75,22 @@
   <para>
    <example>
     <title><function>gmdate</function> example</title>
-    <para>
-     When run in Finland (GMT +0200), the first line below prints "Jan 01
-     1998 00:00:00", while the second prints "Dec 31 1997 22:00:00".
-    </para>
     <programlisting role="php">
 <![CDATA[
 <?php
-echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
-echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
-?>
+date_default_timezone_set("Europe/Helsinki");
+
+echo date("M d Y H:i:s e", mktime(0, 0, 0, 1, 1, 1998)) . "\n";
+echo gmdate("M d Y H:i:s e", mktime(0, 0, 0, 1, 1, 1998));
 ]]>
     </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+Jan 01 1998 00:00:00 Europe/Helsinki
+Dec 31 1997 22:00:00 UTC
+]]>
+    </screen>
    </example>
   </para>
  </refsect1>
diff --git a/reference/datetime/functions/gmmktime.xml b/reference/datetime/functions/gmmktime.xml
index 7fdd1c0e21a1..470551d9f833 100644
--- a/reference/datetime/functions/gmmktime.xml
+++ b/reference/datetime/functions/gmmktime.xml
@@ -151,11 +151,17 @@
     <programlisting role="php">
 <![CDATA[
 <?php
-// Prints: July 1, 2000 is on a Saturday
+date_default_timezone_set("Indian/Maldives");
+
 echo "July 1, 2000 is on a " . date("l", gmmktime(0, 0, 0, 7, 1, 2000));
-?>
 ]]>
     </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+July 1, 2000 is on a Saturday
+]]>
+    </screen>
    </example>
   </para>
  </refsect1>
diff --git a/reference/datetime/functions/gmstrftime.xml b/reference/datetime/functions/gmstrftime.xml
index e4102e6274bb..19f16fcf53c4 100644
--- a/reference/datetime/functions/gmstrftime.xml
+++ b/reference/datetime/functions/gmstrftime.xml
@@ -102,7 +102,6 @@
 setlocale(LC_TIME, 'en_US');
 echo strftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
 echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
-?>
 ]]>
     </programlisting>
    </example>
diff --git a/reference/datetime/functions/idate.xml b/reference/datetime/functions/idate.xml
index 4cff3c0e30f9..90d86d4d61a8 100644
--- a/reference/datetime/functions/idate.xml
+++ b/reference/datetime/functions/idate.xml
@@ -196,15 +196,24 @@
     <programlisting role="php">
 <![CDATA[
 <?php
-$timestamp = strtotime('1st January 2004'); //1072915200
+$timestamp = strtotime('1st January 2004'); // 1072915200
 
 // this prints the year in a two digit format
 // however, as this would start with a "0", it
 // only prints "4"
+echo idate('y', $timestamp) . "\n";
+
+$timestamp = strtotime('1st January 2024'); // 1704067200
 echo idate('y', $timestamp);
-?>
 ]]>
     </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+4
+24
+]]>
+    </screen>
    </example>
   </para>
  </refsect1>
diff --git a/reference/datetime/functions/localtime.xml b/reference/datetime/functions/localtime.xml
index f89b3b7b1a18..c2abc514e4b4 100644
--- a/reference/datetime/functions/localtime.xml
+++ b/reference/datetime/functions/localtime.xml
@@ -148,7 +148,6 @@ $localtime = localtime();
 $localtime_assoc = localtime(time(), true);
 print_r($localtime);
 print_r($localtime_assoc);
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
diff --git a/reference/datetime/functions/microtime.xml b/reference/datetime/functions/microtime.xml
index 73413d84955d..3b6c052076eb 100644
--- a/reference/datetime/functions/microtime.xml
+++ b/reference/datetime/functions/microtime.xml
@@ -68,30 +68,28 @@
 $time_start = microtime(true);
 
 // Sleep for a while
-usleep(100);
+usleep(10_000);
 
 $time_end = microtime(true);
 $time = $time_end - $time_start;
 
-echo "Did nothing in $time seconds\n";
-?>
+print "Did nothing in $time seconds\n";
 ]]>
     </programlisting>
    </example>
    <example>
     <title><function>microtime</function> and <literal>REQUEST_TIME_FLOAT</literal></title>
-    <programlisting role="php">
+    <programlisting role="php" annotations="non-interactive">
 <![CDATA[
 <?php
 // Randomize sleeping time
-usleep(mt_rand(100, 10000));
+usleep(random_int(10_000, 1_000_000));
 
 // REQUEST_TIME_FLOAT is available in the $_SERVER superglobal array.
 // It contains the timestamp of the start of the request with microsecond precision.
 $time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
 
 echo "Did nothing in $time seconds\n";
-?>
 ]]>
     </programlisting>
    </example>
diff --git a/reference/datetime/functions/mktime.xml b/reference/datetime/functions/mktime.xml
index 5a05625e8753..5ffdaa5ea933 100644
--- a/reference/datetime/functions/mktime.xml
+++ b/reference/datetime/functions/mktime.xml
@@ -170,13 +170,19 @@
 date_default_timezone_set('UTC');
 
 // Prints: July 1, 2000 is on a Saturday
-echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
+echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000)) . "\n";
 
 // Prints something like: 2006-04-05T01:02:03+00:00
-echo date('c', mktime(1, 2, 3, 4, 5, 2006));
-?>
+echo date('c', mktime(1, 2, 3, 4, 5, 2006)) . "\n";
 ]]>
     </programlisting>
+    &example.outputs.similar;
+    <screen>
+<![CDATA[
+July 1, 2000 is on a Saturday
+2006-04-05T01:02:03+00:00
+]]>
+    </screen>
    </example>
   </para>
   <para>
@@ -191,14 +197,59 @@ echo date('c', mktime(1, 2, 3, 4, 5, 2006));
     <programlisting role="php">
 <![CDATA[
 <?php
-echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
-echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
-echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
-echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
-?>
+date_default_timezone_set('America/New_York');
+
+echo date("c", mktime(0, 0, 0, 12, 32, 1997)) . "\n";
+echo date("c", mktime(0, 0, 0, 13, 1, 1997)) . "\n";
+echo date("c", mktime(0, 0, 0, 1, 1, 1998)) . "\n";
+echo date("c", mktime(0, 0, 0, 1, 1, 98)) . "\n";
+]]>
+    </programlisting>
+    &example.outputs.similar;
+    <screen>
+<![CDATA[
+1998-01-01T00:00:00-05:00
+1998-01-01T00:00:00-05:00
+1998-01-01T00:00:00-05:00
+1998-01-01T00:00:00-05:00
+]]>
+    </screen>
+   </example>
+  </para>
+  <para>
+   <example>
+    <title>Using mktime to find relative dates</title>
+    <programlisting role="php">
+<![CDATA[
+<?php
+date_default_timezone_set('Asia/Tokyo');
+
+$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
+print date('c', $tomorrow) . "\n";
+
+$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
+print date('c', $lastmonth) . "\n";
+
+$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1) . "\n";
+print date('c', $nextyear) . "\n";
 ]]>
     </programlisting>
+    &example.outputs.similar;
+    <screen>
+<![CDATA[
+2025-09-30T00:00:00+09:00
+2025-08-29T00:00:00+09:00
+2026-09-29T00:00:00+09:00
+]]>
+    </screen>
    </example>
+   <note>
+    <para>
+     This can be more reliable than simply adding or subtracting the number
+     of seconds in a day or month to a timestamp because of daylight saving
+     time.
+    </para>
+   </note>
   </para>
   <para>
    <example>
@@ -213,14 +264,19 @@ echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
 <?php
 
 $lastday = mktime(0, 0, 0, 3, 0, 2000);
-echo 'Last day in Feb 2000 is: ', date('d', $lastday);
+echo 'Last day in Feb 2000 is: ', date('d', $lastday) . "\n";
 
 $lastday = mktime(0, 0, 0, 4, -31, 2000);
-echo 'Last day in Feb 2000 is: ', date('d', $lastday);
-
-?>
+echo 'Last day in Feb 2000 is: ', date('d', $lastday) . "\n";
 ]]>
     </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+Last day in Feb 2000 is: 29
+Last day in Feb 2000 is: 29
+]]>
+    </screen>
    </example>
   </para>
  </refsect1>
diff --git a/reference/datetime/functions/strftime.xml b/reference/datetime/functions/strftime.xml
index a143921b194f..07a39f3b4b8c 100644
--- a/reference/datetime/functions/strftime.xml
+++ b/reference/datetime/functions/strftime.xml
@@ -421,7 +421,7 @@
    in your system.
    <example>
     <title><function>strftime</function> locale examples</title>
-    <programlisting role="php">
+    <programlisting role="php" annotations="non-interactive">
 <![CDATA[
 <?php
 setlocale(LC_TIME, "C");
@@ -432,7 +432,6 @@ setlocale(LC_TIME, "fr_FR");
 echo strftime(" in French %A and");
 setlocale(LC_TIME, "de_DE");
 echo strftime(" in German %A.\n");
-?>
 ]]>
     </programlisting>
    </example>
@@ -486,8 +485,6 @@ echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n
 
 // Outputs: 1/3/2005 - %V,%G,%Y = 1,2005,2005
 echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";
-
-?>
 ]]>
     </programlisting>
    </example>
@@ -509,7 +506,6 @@ if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
 }
 
 echo strftime($format);
-?>
 ]]>
     </programlisting>
    </example>
@@ -600,8 +596,6 @@ foreach ($strftimeValues as $format => $value) {
 foreach (array_diff_key($strftimeFormats, $strftimeValues) as $format => $description) {
     echo "Unknown format : '{$format}'   ", str_pad(' ', $maxValueLength), ($description ? " ( {$description} )" : ''), "\n";
 }
-
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
diff --git a/reference/datetime/functions/strptime.xml b/reference/datetime/functions/strptime.xml
index b4e3de531548..4b622f8d8207 100644
--- a/reference/datetime/functions/strptime.xml
+++ b/reference/datetime/functions/strptime.xml
@@ -164,7 +164,6 @@ $strf = strftime($format);
 echo "$strf\n";
 
 print_r(strptime($strf, $format));
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
diff --git a/reference/datetime/functions/strtotime.xml b/reference/datetime/functions/strtotime.xml
index ad8a33c2a048..74b4360b1bc6 100644
--- a/reference/datetime/functions/strtotime.xml
+++ b/reference/datetime/functions/strtotime.xml
@@ -115,7 +115,6 @@ echo strtotime("+1 week"), "\n";
 echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
 echo strtotime("next Thursday"), "\n";
 echo strtotime("last Monday"), "\n";
-?>
 ]]>
     </programlisting>
    </example>
@@ -133,7 +132,6 @@ if (($timestamp = strtotime($str)) === false) {
 } else {
     echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
 }
-?>
 ]]>
     </programlisting>
    </example>
diff --git a/reference/datetime/functions/time.xml b/reference/datetime/functions/time.xml
index 500de7170f70..4757c27c107b 100644
--- a/reference/datetime/functions/time.xml
+++ b/reference/datetime/functions/time.xml
@@ -48,7 +48,6 @@
 <![CDATA[
 <?php
 echo 'Now: '. time();
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
diff --git a/reference/datetime/functions/timezone-name-from-abbr.xml b/reference/datetime/functions/timezone-name-from-abbr.xml
index bc0fbd1c1da2..e2e4b2b87531 100644
--- a/reference/datetime/functions/timezone-name-from-abbr.xml
+++ b/reference/datetime/functions/timezone-name-from-abbr.xml
@@ -75,7 +75,6 @@
 <?php
 echo timezone_name_from_abbr("CET") . "\n";
 echo timezone_name_from_abbr("", 3600, 0) . "\n";
-?>
 ]]>
     </programlisting>
     &example.outputs.similar;
diff --git a/reference/datetime/functions/timezone-version-get.xml b/reference/datetime/functions/timezone-version-get.xml
index a1f15260043d..81e1ca319931 100644
--- a/reference/datetime/functions/timezone-version-get.xml
+++ b/reference/datetime/functions/timezone-version-get.xml
@@ -53,7 +53,6 @@
 <![CDATA[
 <?php
 echo timezone_version_get();
-?>
 ]]>
     </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.