mirror of
https://github.com/php/doc-ru.git
synced 2026-04-25 16:28:19 +02:00
71033720d9
* Update book.xml to en * Update dateperiod.xml to en * Update formats.xml to en * Update construct.xml to en * Update createfromdatestring.xml to en * Update format.xml to en * Update createfromiso8601string.xml to en * Update getdateinterval.xml to en * Update getenddate.xml to en * Update getrecurrences.xml to en * Update getstartdate.xml to en * Update dateperiod.xml * Update formats.xml * Update construct.xml * Update createfromdatestring.xml * Update format.xml * Update createfromiso8601string.xml * Update getdateinterval.xml * Update getenddate.xml * Update getrecurrences.xml * Update getstartdate.xml * Update createfromimmutable.xml to en * Update createfromimmutable.xml * Update createfromimmutable.xml * Update createfrominterface.xml to en * Update modify.xml to en * Update settimezone.xml to en * Update construct.xml to en * Update createfrominterface.xml * Update createfrominterface.xml to en * Update createfrominterface.xml * Update createfrommutable.xml to en * Update getlasterrors.xml to en * Update modify.xml to en * Update setdate.xml to en * Update setisodate.xml to en * Update settime.xml to en * Update settimestamp.xml to en * Update settimezone.xml to en * Update sub.xml to en * Update diff.xml to en * Update format.xml to En * Update getoffset.xml to en * Update format.xml * Update gettimestamp.xml to en * Update gettimezone.xml to en * Update serialize.xml to en * Update unserialize.xml to en * Update construct.xml to en * Update getlocation.xml to en * Update getoffset.xml to en * Update getoffset.xml Само обновление * Update gettransitions.xml to en * Update listabbreviations.xml to en * Update checkdate.xml to en * Update date-default-timezone-get.xml to en * Update date-default-timezone-set.xml to en * Update date-parse-from-format.xml to en * Update date-parse.xml to en * Update date-parse-from-format.xml * Update date-sun-info.xml to en * Update date-sunrise.xml to en * Update date-sunset.xml to en * Update date.xml to en * Update getdate.xml to en * Update gettimeofday.xml to en * Update date-parse-from-format.xml * Update getoffset.xml * Update gettransitions.xml * Update diff.xml * Update getoffset.xml * Update gmdate.xml to en * Update gmmktime.xml to en * Update gmstrftime.xml to en * Update idate.xml to en * Update localtime.xml to en * Update microtime.xml to en * Update microtime.xml * Update mktime.xml to en * Update strftime.xml to en * Update strptime.xml to en * Update strtotime.xml to en * Update time.xml to en * Update timezone-name-from-abbr.xml to en * Update timezone-version-get.xml to en * Update construct.xml Sync rev ID * Update getlasterrors.xml stync rev id * Update gettransitions.xml fix xml styntax error * Update idate.xml fix xml syntax error
326 lines
14 KiB
XML
326 lines
14 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 3a8c3e77df070a046c9d5b56b68926ca2d7e5ee3 Maintainer: shein Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<refentry xml:id="function.mktime" xmlns="http://docbook.org/ns/docbook">
|
||
<refnamediv>
|
||
<refname>mktime</refname>
|
||
<refpurpose>Получает метку Unix-времени для даты</refpurpose>
|
||
</refnamediv>
|
||
|
||
<refsect1 role="description">
|
||
&reftitle.description;
|
||
<methodsynopsis>
|
||
<type class="union"><type>int</type><type>false</type></type><methodname>mktime</methodname>
|
||
<methodparam><type>int</type><parameter>hour</parameter></methodparam>
|
||
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>minute</parameter><initializer>&null;</initializer></methodparam>
|
||
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>second</parameter><initializer>&null;</initializer></methodparam>
|
||
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>month</parameter><initializer>&null;</initializer></methodparam>
|
||
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>day</parameter><initializer>&null;</initializer></methodparam>
|
||
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>year</parameter><initializer>&null;</initializer></methodparam>
|
||
</methodsynopsis>
|
||
<para>
|
||
Функция возвращает метку времени Unix, которая соответствует заданным
|
||
аргументам. Метка времени — целое число, которое содержит количество секунд
|
||
между началом эпохи Unix, которая началась 1 января 1970 00:00:00 GMT, и датой и временем.
|
||
</para>
|
||
<para>
|
||
Функция присвоит необязательным параметрам, которые не указали или присвоили значение &null;,
|
||
текущие значения, которые соответствуют локальным дате и времени.
|
||
</para>
|
||
<warning>
|
||
<para>
|
||
Обратите внимание, что аргументы идут в странном порядке:
|
||
<parameter>month</parameter>, <parameter>day</parameter>,
|
||
<parameter>year</parameter>, а не в более рациональном порядке
|
||
<parameter>year</parameter>, <parameter>month</parameter>,
|
||
<parameter>day</parameter>.
|
||
</para>
|
||
</warning>
|
||
<simpara>
|
||
Вызов функции <function>mktime</function> без аргументов не поддерживается
|
||
и вызовет исключение <classname>ArgumentCountError</classname>.
|
||
Текущую метку времени возвращает функция <function>time</function>.
|
||
</simpara>
|
||
</refsect1>
|
||
|
||
<refsect1 role="parameters">
|
||
&reftitle.parameters;
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><parameter>hour</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Количество часов с начала дня, который определили параметрами
|
||
<parameter>month</parameter>, <parameter>day</parameter> и <parameter>year</parameter>.
|
||
Отрицательные значения относятся к часам до полуночи относительно заданного
|
||
дня. Значения больше 23 определяют час, который соответствует
|
||
следующему дню или дням.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>minute</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Количество минут с начала часа, который установили параметром
|
||
<parameter>hour</parameter>.
|
||
Отрицательные значения относятся к минутам предыдущего часа.
|
||
Значения больше 59 относятся к минутам, которые соответствуют следующему часу или часам.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>second</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Количество секунд с начала минуты, которую установили параметром
|
||
<parameter>minute</parameter>. Отрицательные значения относятся к секундам
|
||
предыдущей минуты. Значения больше 59 относятся к секундам,
|
||
которые соответствуют следующей минуте или минутам.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>month</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Количество месяцев с начала текущего года.
|
||
Значения от 1 до 12 относятся к обычным календарным месяцам заданного года
|
||
Значения меньше 1 (включая отрицательные значения) относятся к месяцам предыдущего
|
||
года в обратном порядке, то есть 0 — декабрь, -1 — ноябрь и т. д.
|
||
Значения больше 12 относятся к месяцу следующего года или лет.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>day</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Количество дней с начала текущего месяца.
|
||
Значения от 1 до 28, 29, 30 или 31 (в зависимости от месяца) относятся к обычным
|
||
дням месяца. Значения меньше 1 (включая отрицательные значения)
|
||
относятся к дням предыдущего месяца, поэтому 0 — последний день
|
||
предыдущего месяца, -1 — предпоследний день предыдущего месяца и т. д.
|
||
Значения, которые превышают количество дней в месяце, относятся
|
||
ко дню следующего месяца или месяцев.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>year</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Номер года состоит из двух или четырёх цифр. Значения
|
||
от 0 до 69 соответствуют 2000-2069 годам, а от 70 до 100 — 1970-2000 годам. В системах
|
||
с арифметическим типом time_t в виде 32-разрядного целого числа со знаком, как самым
|
||
распространённым способом представления времени,
|
||
в допустимый диапазон параметра year входят значения примерно между 1901 и 2038 годами.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</refsect1>
|
||
|
||
|
||
<refsect1 role="returnvalues">
|
||
&reftitle.returnvalues;
|
||
<para>
|
||
Функция <function>mktime</function> возвращает метку времени Unix по заданным аргументам
|
||
или &false;, если метка времени выходит за пределы диапазона целых чисел PHP.
|
||
</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.0.0</entry>
|
||
<entry>
|
||
Параметр <parameter>hour</parameter> стал обязательным.
|
||
Функция <function>time</function> возвращает метку времени Unix без аргументов.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>8.0.0</entry>
|
||
<entry>
|
||
Параметры <parameter>minute</parameter>, <parameter>second</parameter>, <parameter>month</parameter>,
|
||
<parameter>day</parameter> и <parameter>year</parameter> теперь принимают значение &null;.
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="examples">
|
||
&reftitle.examples;
|
||
<para>
|
||
<example>
|
||
<title>Пример базовой работы функции <function>mktime</function></title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
|
||
// Устанавливаем часовой пояс по умолчанию
|
||
date_default_timezone_set('UTC');
|
||
|
||
// Выводит: July 1, 2000 is on a Saturday
|
||
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000)) . "\n";
|
||
|
||
// Выводит что-то вроде: 2006-04-05T01:02:03+00:00
|
||
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>
|
||
<example>
|
||
<title>Пример получения метки времени функцией <function>mktime</function></title>
|
||
<para>
|
||
Функция <function>mktime</function> полезна для выполнения
|
||
арифметических операций и проверки дат,
|
||
поскольку функция автоматически
|
||
вычисляет правильные значения для входных аргументов, которые выходят за пределы
|
||
допустимого диапазона. В следующем примере каждая строка кода создаёт строку "Jan-01-1998".
|
||
</para>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
|
||
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>Пример получения метки времени для относительных дат функцией mktime</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>
|
||
Добавление относительных интервалов времени часто надёжнее добавления или вычитания
|
||
секунд в дне или месяце, поскольку учитывают переходы на летнее время.
|
||
</para>
|
||
</note>
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>Пример получения последнего дня месяца</title>
|
||
<para>
|
||
Последний день любого месяца получится выразить «нулевым» днём
|
||
следующего месяца, но не -1 днём. Оба следующих примера
|
||
создадут строку "Последний день февраля 2000 г.: 29".
|
||
</para>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
|
||
$lastday = mktime(0, 0, 0, 3, 0, 2000);
|
||
echo 'Последний день февраля в 2000 году: ', date('d', $lastday) . "\n";
|
||
|
||
$lastday = mktime(0, 0, 0, 4, -31, 2000);
|
||
echo 'Последний день февраля в 2000 году: ', 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>
|
||
|
||
<refsect1 role="seealso">
|
||
&reftitle.seealso;
|
||
<para>
|
||
<simplelist>
|
||
<member>Класс <classname>DateTimeImmutable</classname></member>
|
||
<member><function>checkdate</function></member>
|
||
<member><function>gmmktime</function></member>
|
||
<member><function>date</function></member>
|
||
<member><function>time</function></member>
|
||
</simplelist>
|
||
</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
|
||
-->
|