Skip to content

Commit

Permalink
Add createFromInterface() for DateTime objects
Browse files Browse the repository at this point in the history
Closes GH-257.


git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@352009 c90b9560-bf6c-de11-be94-00142212c4b1
  • Loading branch information
cmb69 committed Dec 10, 2020
1 parent 9380b40 commit e8af4ba
Show file tree
Hide file tree
Showing 3 changed files with 172 additions and 0 deletions.
85 changes: 85 additions & 0 deletions reference/datetime/datetime/createfrominterface.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->

<refentry xml:id="datetime.createfrominterface" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>DateTime::createFromInterface</refname>
<refpurpose>Returns new DateTime object encapsulating the given DateTimeInterface object</refpurpose>
</refnamediv>

<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<modifier>public</modifier> <modifier>static</modifier> <type>DateTime</type><methodname>DateTime::createFromInterface</methodname>
<methodparam><type>DateTimeInterface</type><parameter>object</parameter></methodparam>
</methodsynopsis>
</refsect1>

<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>object</parameter></term>
<listitem>
<para>
The <classname>DateTimeInterface</classname> object that needs
to be converted to a mutable version. This object is not modified, but
instead a new <classname>DateTime</classname> object is
created containing the same date, time, and timezone information.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>

<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns a new <classname>DateTime</classname> instance.
</para>
</refsect1>

<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Creating a mutable date time object</title>
<programlisting role="php">
<![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>
</para>
</refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
85 changes: 85 additions & 0 deletions reference/datetime/datetimeimmutable/createfrominterface.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->

<refentry xml:id="datetimeimmutable.createfrominterface" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>DateTimeImmutable::createFromInterface</refname>
<refpurpose>Returns new DateTimeImmutable object encapsulating the given DateTimeInterface object</refpurpose>
</refnamediv>

<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="oop">
<modifier>public</modifier> <modifier>static</modifier> <type>DateTimeImmutable</type><methodname>DateTimeImmutable::createFromInterface</methodname>
<methodparam><type>DateTimeInterface</type><parameter>object</parameter></methodparam>
</methodsynopsis>
</refsect1>

<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>object</parameter></term>
<listitem>
<para>
The <classname>DateTimeInterface</classname> object that needs
to be converted to an immutable version. This object is not modified, but
instead a new <classname>DateTimeImmutable</classname> object is
created containing the same date, time, and timezone information.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>

<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns a new <classname>DateTimeImmutable</classname> instance.
</para>
</refsect1>

<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Creating an immutable date time object</title>
<programlisting role="php">
<![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>
</para>
</refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
2 changes: 2 additions & 0 deletions reference/datetime/versions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<function name="datetime::add" from="PHP 5 &gt;= 5.3.0, PHP 7"/>
<function name="datetime::createfromformat" from="PHP 5 &gt;= 5.3.0, PHP 7"/>
<function name="datetime::createfromimmutable" from="PHP 7 &gt;= 7.3.0"/>
<function name="datetime::createfrominterface" from="PHP 8"/>
<function name="datetime::diff" from="PHP 5 &gt;= 5.3.0, PHP 7"/>
<function name="datetime::format" from="PHP 5 &gt;= 5.2.1, PHP 7"/>
<function name="datetime::getlasterrors" from="PHP 5 &gt;= 5.3.0, PHP 7"/>
Expand Down Expand Up @@ -40,6 +41,7 @@
<function name="datetimeimmutable::__wakeup" from="PHP 5 &gt;= 5.5.0, PHP 7"/>
<function name="datetimeimmutable::createfromformat" from="PHP 5 &gt;= 5.5.0, PHP 7"/>
<function name="datetimeimmutable::createfrommutable" from="PHP 5 &gt;= 5.6.0, PHP 7"/>
<function name="datetimeimmutable::createfrominterface" from="PHP 8"/>
<function name="datetimeimmutable::diff" from="PHP 5 &gt;= 5.5.0, PHP 7"/>
<function name="datetimeimmutable::format" from="PHP 5 &gt;= 5.5.0, PHP 7"/>
<function name="datetimeimmutable::getlasterrors" from="PHP 5 &gt;= 5.5.0, PHP 7"/>
Expand Down

0 comments on commit e8af4ba

Please sign in to comment.