1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-27 17:22:14 +01:00
Files
archived-doc-ru/reference/datetime/datetimeimmutable/construct.xml
2023-12-12 22:29:45 +03:00

268 lines
8.2 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8b4c3d8dc5e190fbd5d84eede38a4da13537043d Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="datetimeimmutable.construct" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>DateTimeImmutable::__construct</refname>
<refname>date_create_immutable</refname>
<refpurpose>Возвращает новый объект DateTimeImmutable</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>&style.oop;</para>
<constructorsynopsis role="DateTimeImmutable">
<modifier>public</modifier> <methodname>DateTimeImmutable::__construct</methodname>
<methodparam choice="opt"><type>string</type><parameter>datetime</parameter><initializer>"now"</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>DateTimeZone</type><type>null</type></type><parameter>timezone</parameter><initializer>&null;</initializer></methodparam>
</constructorsynopsis>
<para>&style.procedural;</para>
<methodsynopsis>
<type class="union"><type>DateTimeImmutable</type><type>false</type></type><methodname>date_create_immutable</methodname>
<methodparam choice="opt"><type>string</type><parameter>datetime</parameter><initializer>"now"</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>DateTimeZone</type><type>null</type></type><parameter>timezone</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Возвращает новый объект DateTimeImmutable.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
<varlistentry>
<term><parameter>datetime</parameter></term>
<listitem>
<para>&date.formats.parameter;</para>
<para>
Для получения текущего времени
в параметр <parameter>timezone</parameter> можно передать строку <literal>"now"</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>timezone</parameter></term>
<listitem>
<para>
Объект <classname>DateTimeZone</classname>,
представляющий часовой пояс параметра <parameter>datetime</parameter>.
</para>
<para>
Если параметр <parameter>timezone</parameter> опущен или равен &null;,
будет использован текущий часовой пояс.
</para>
<note>
<para>
Параметр <parameter>timezone</parameter> и текущий часовой пояс будут проигнорированы,
если параметр <parameter>datetime</parameter> либо является временной меткой UNIX
(например, <literal>@946684800</literal>), либо указан часовой пояс
(например, <literal>2010-01-28T15:00:00+02:00</literal>
или <literal>2010-07-05T06:00:00Z</literal>).
</para>
</note>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает новый экземпляр DateTimeImmutable.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Если будет передана строка с неправильной датой/временем,
будет выброшено исключение <exceptionname>DateMalformedStringException</exceptionname>.
До PHP 8.3 выбрасывалось исключение <exceptionname>Exception</exceptionname>.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.3.0</entry>
<entry>
Теперь вместо исключения
<exceptionname>Exception</exceptionname>
выбрасывается исключение
<exceptionname>DateMalformedStringException</exceptionname>,
если передана неверная строка.
</entry>
</row>
<row>
<entry>7.1.0</entry>
<entry>
Отныне микросекунды заполняются фактическим значением. Не '00000'.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title>Пример использования <function>DateTimeImmutable::__construct</function></title>
<para>&style.oop;</para>
<programlisting role="php">
<![CDATA[
<?php
try {
$date = new DateTimeImmutable('2000-01-01');
} catch (Exception $e) {
echo $e->getMessage();
exit(1);
}
echo $date->format('Y-m-d');
?>
]]>
</programlisting>
<para>&style.procedural;</para>
<programlisting role="php">
<![CDATA[
<?php
$date = date_create('2000-01-01');
if (!$date) {
$e = date_get_last_errors();
foreach ($e['errors'] as $error) {
echo "$error\n";
}
exit(1);
}
echo date_format($date, 'Y-m-d');
?>
]]>
</programlisting>
&examples.outputs;
<screen>
<![CDATA[
2000-01-01
]]>
</screen>
</example>
<example>
<title>Тонкости <function>DateTimeImmutable::__construct</function></title>
<programlisting role="php">
<![CDATA[
<?php
// Указанная дата/время в часовом поясе вашего компьютера.
$date = new DateTimeImmutable('2000-01-01');
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";
// Текущая дата/время в часовом поясе вашего компьютера.
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:sP') . "\n";
// Текущая дата/время в указанном часовом поясе.
$date = new DateTimeImmutable('now', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// Использование временной метки UNIX. Обратите внимание, что результат в часовом поясе UTC.
$date = new DateTimeImmutable('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";
// Несуществующие значения переворачиваются.
$date = new DateTimeImmutable('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
2000-01-01 00:00:00-05:00
2000-01-01 00:00:00+12:00
2010-04-24 10:24:16-04:00
2010-04-25 02:24:16+12:00
2000-01-01 00:00:00+00:00
2000-03-01 00:00:00-05:00
]]>
</screen>
</example>
<example>
<title>Изменение связанного часового пояса</title>
<programlisting role="php">
<![CDATA[
<?php
$timeZone = new \DateTimeZone('Asia/Tokyo');
$time = new \DateTimeImmutable();
$time = $time->setTimezone($timeZone);
echo $time->format('Y/m/d H:i:s'), "\n";
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
2022/08/12 23:49:23
]]>
</screen>
</example>
<example>
<title>Использование относительной строки даты/времени</title>
<programlisting role="php">
<![CDATA[
<?php
$time = new \DateTimeImmutable("-1 year");
echo $time->format('Y/m/d H:i:s'), "\n";
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
2021/08/12 15:43:51
]]>
</screen>
</example>
</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
-->