diff --git a/user_guide_src/source/changelogs/v4.6.0.rst b/user_guide_src/source/changelogs/v4.6.0.rst index 57a36d19cf4e..223199d2f2e8 100644 --- a/user_guide_src/source/changelogs/v4.6.0.rst +++ b/user_guide_src/source/changelogs/v4.6.0.rst @@ -52,6 +52,12 @@ with different arguments in before or after. See .. _v460-interface-changes: +Time with Microseconds +---------------------- + +Fixed bugs that some methods in ``Time`` to lose microseconds have been fixed. +See :ref:`Upgrading Guide ` for details. + Interface Changes ================= diff --git a/user_guide_src/source/installation/upgrade_460.rst b/user_guide_src/source/installation/upgrade_460.rst index 8546df1903f2..ff7702eabe31 100644 --- a/user_guide_src/source/installation/upgrade_460.rst +++ b/user_guide_src/source/installation/upgrade_460.rst @@ -29,6 +29,42 @@ See :ref:`ChangeLog ` for details. If you have code that catches these exceptions, change the exception classes. +.. _upgrade-460-time-keeps-microseconds: + +Time keeps Microseconds +======================= + +In previous versions, :doc:`Time <../libraries/time>` lost microseconds in some +cases. But the bugs have been fixed. + +The results of the ``Time`` comparison may differ due to these fixes: + +.. literalinclude:: upgrade_460/006.php + :lines: 2- + +In a such case, you need to remove the microseconds: + +.. literalinclude:: upgrade_460/007.php + :lines: 2- + +The following cases now keeps microseconds: + +.. literalinclude:: upgrade_460/002.php + :lines: 2- + +.. literalinclude:: upgrade_460/003.php + :lines: 2- + +Note that ``Time`` with the current time has been holding microseconds since before. + +.. literalinclude:: upgrade_460/004.php + :lines: 2- + +Also, methods that returns an ``int`` still lose the microseconds. + +.. literalinclude:: upgrade_460/005.php + :lines: 2- + Interface Changes ================= diff --git a/user_guide_src/source/installation/upgrade_460/002.php b/user_guide_src/source/installation/upgrade_460/002.php new file mode 100644 index 000000000000..91747d7b5464 --- /dev/null +++ b/user_guide_src/source/installation/upgrade_460/002.php @@ -0,0 +1,8 @@ +format('Y-m-d H:i:s.u'); +// Before: 2024-07-09 09:13:34.000000 +// After: 2024-07-09 09:13:34.654321 diff --git a/user_guide_src/source/installation/upgrade_460/003.php b/user_guide_src/source/installation/upgrade_460/003.php new file mode 100644 index 000000000000..65914ece9c7c --- /dev/null +++ b/user_guide_src/source/installation/upgrade_460/003.php @@ -0,0 +1,8 @@ +format('Y-m-d H:i:s.u'); +// Before: 2024-07-26 21:05:57.000000 +// After: 2024-07-26 21:05:57.857235 diff --git a/user_guide_src/source/installation/upgrade_460/004.php b/user_guide_src/source/installation/upgrade_460/004.php new file mode 100644 index 000000000000..dab6489fd68b --- /dev/null +++ b/user_guide_src/source/installation/upgrade_460/004.php @@ -0,0 +1,8 @@ +format('Y-m-d H:i:s.u'); +// Before: 2024-07-26 21:39:32.249072 +// After: 2024-07-26 21:39:32.249072 diff --git a/user_guide_src/source/installation/upgrade_460/005.php b/user_guide_src/source/installation/upgrade_460/005.php new file mode 100644 index 000000000000..a5e80c09b778 --- /dev/null +++ b/user_guide_src/source/installation/upgrade_460/005.php @@ -0,0 +1,9 @@ +getTimestamp(); // 1704110400 + +$time2 = new Time('2024-01-01 12:00:00.654321'); +echo $time2->getTimestamp(); // 1704110400 diff --git a/user_guide_src/source/installation/upgrade_460/006.php b/user_guide_src/source/installation/upgrade_460/006.php new file mode 100644 index 000000000000..316d802ada48 --- /dev/null +++ b/user_guide_src/source/installation/upgrade_460/006.php @@ -0,0 +1,10 @@ +equals($time2); +// Before: true +// After: false diff --git a/user_guide_src/source/installation/upgrade_460/007.php b/user_guide_src/source/installation/upgrade_460/007.php new file mode 100644 index 000000000000..22cadc8c0773 --- /dev/null +++ b/user_guide_src/source/installation/upgrade_460/007.php @@ -0,0 +1,17 @@ +format('Y-m-d H:i:s'), + $time1->getTimezone() +); + +$time1->equals($time2); +// Before: true +// After: true