mirror of
https://github.com/php/doc-ru.git
synced 2026-03-26 08:42:13 +01:00
272 lines
12 KiB
XML
272 lines
12 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 349e3c6502e0bbeb15aef2b4a4a25f3f5e10fbfe 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> теперь обязателен.
|
||
Чтобы получить временну́ю метку Unix, вызывают функцию <function>time</function>.
|
||
</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));
|
||
|
||
// Выводит что-то вроде: 2006-04-05T01:02:03+00:00
|
||
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
|
||
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
<para>
|
||
<example>
|
||
<title>Пример использования функции <function>mktime</function></title>
|
||
<para>
|
||
Функция <function>mktime</function> полезна для выполнения
|
||
арифметических операций и проверки дат,
|
||
поскольку функция автоматически
|
||
вычисляет правильные значения для входных аргументов, которые выходят за пределы
|
||
допустимого диапазона. В следующем примере каждая строка кода создаёт строку «Jan-01-1998».
|
||
</para>
|
||
<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));
|
||
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</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);
|
||
|
||
$lastday = mktime(0, 0, 0, 4, -31, 2000);
|
||
echo 'Последний день февраля в 2000 году: ', date('d', $lastday);
|
||
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</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
|
||
-->
|