mirror of
https://github.com/php/doc-ru.git
synced 2025-08-16 18:22:04 +00:00

git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@324353 c90b9560-bf6c-de11-be94-00142212c4b1
341 lines
15 KiB
XML
341 lines
15 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: 7ae82a50bb7cb029184a6d30001a2f165e88b28d Maintainer: shein Status: ready -->
|
||
<!-- Reviewed: yes -->
|
||
<!-- $Revision$ -->
|
||
<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>int</type><methodname>mktime</methodname>
|
||
<methodparam choice="opt"><type>int</type><parameter>hour</parameter><initializer>date("H")</initializer></methodparam>
|
||
<methodparam choice="opt"><type>int</type><parameter>minute</parameter><initializer>date("i")</initializer></methodparam>
|
||
<methodparam choice="opt"><type>int</type><parameter>second</parameter><initializer>date("s")</initializer></methodparam>
|
||
<methodparam choice="opt"><type>int</type><parameter>month</parameter><initializer>date("n")</initializer></methodparam>
|
||
<methodparam choice="opt"><type>int</type><parameter>day</parameter><initializer>date("j")</initializer></methodparam>
|
||
<methodparam choice="opt"><type>int</type><parameter>year</parameter><initializer>date("Y")</initializer></methodparam>
|
||
<methodparam choice="opt"><type>int</type><parameter>is_dst</parameter><initializer>-1</initializer></methodparam>
|
||
</methodsynopsis>
|
||
<para>
|
||
Функция возвращает метку времени Unix, соответствующую дате и
|
||
времени, заданным аргументами.
|
||
Метка времени - это целое число, равное разнице в секундах между
|
||
заданной датой/временем и началом Эпохи Unix (The Unix Epoch,
|
||
1 января 1970 00:00:00 GMT).
|
||
</para>
|
||
<para>
|
||
Аргументы могут быть опущены в порядке справа налево. В этом
|
||
случае их значения по умолчанию равны соответствующим компонентам
|
||
локальной даты/времени.
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="notes">
|
||
&reftitle.notes;
|
||
<note>
|
||
<para>
|
||
Начиная с версии PHP 5.1, если <function>mktime</function>
|
||
вызывается без аргументов, то будет сгенерировано замечание
|
||
уровня <constant>E_STRICT</constant>. Используйте вместо этого
|
||
функцию <function>time</function>.
|
||
</para>
|
||
</note>
|
||
</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-битным знаковым целым (наиболее
|
||
распространенный вариант на сегодня), корректный диапазон
|
||
для параметра <parameter>year</parameter> содержит даты где-то
|
||
между 1901 и 2038. Однако, до версии PHP 5.1.0, на некоторых системах
|
||
этот диапазон был ограничен датами между 1970 и 2038 (например,
|
||
Windows).
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>is_dst</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Данный параметр может быть установлен в 1, если заданной дате
|
||
соответствует летнее время (DST), 0 в противном случае,
|
||
или -1 (значение по умолчанию), если неизвестно, действует
|
||
ли летнее время на заданную дату. В последнем случае PHP
|
||
пытается определить это самостоятельно. Это можно привести к
|
||
неожиданному результату (который, тем не менее, не будет
|
||
неверным).
|
||
Некоторые даты могут быть неверными, если летнее время применимо
|
||
к системе, на которой запущен PHP, или параметр
|
||
<parameter>is_dst</parameter> установлен в 1.
|
||
Если переход на летнее время происходит, например, в 2:00, все
|
||
даты между 2:00 и 3:00 станут некорректными и
|
||
<function>mktime</function> вернет неопределенное (обычно
|
||
отрицательное) значение.
|
||
Некоторые системы (например, Solaris 8) осуществляют переход
|
||
на летнее время в полночь, так что время 0:30 дня, когда был
|
||
осуществлен переход на летнее время будет обрабатываться как
|
||
23:30 предыдущего дня.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Начиная с версии PHP 5.1.0 этот параметр более не рекомендуется к
|
||
использованию. Вместо этого рекомендуется устанавливать соответствующую
|
||
временную зону.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</refsect1>
|
||
|
||
|
||
<refsect1 role="returnvalues">
|
||
&reftitle.returnvalues;
|
||
<para>
|
||
<function>mktime</function> возвращает временную метку Unix в
|
||
соответствии с переданными аргументами.
|
||
Если были переданы некорректными аргументы, функция вернет &false; (до версии PHP 5.1
|
||
возвращалась <literal>-1</literal>).
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="errors">
|
||
&reftitle.errors;
|
||
&date.timezone.errors.description;
|
||
</refsect1>
|
||
|
||
<refsect1 role="changelog">
|
||
&reftitle.changelog;
|
||
<para>
|
||
<informaltable>
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>&Version;</entry>
|
||
<entry>&Description;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry>5.3.0</entry>
|
||
<entry>
|
||
<function>mktime</function> теперь выбрасывает ошибку уровня
|
||
<constant>E_DEPRECATED</constant> при использовании параметра
|
||
<parameter>is_dst</parameter>.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>5.1.0</entry>
|
||
<entry>
|
||
Параметр <parameter>is_dst</parameter> теперь считается устаревшим.
|
||
Функция теперь возвращает &false; при ошибке, тогда как раньше
|
||
возвращалась <literal>-1</literal>.
|
||
Теперь функция принимает дату с одновременно установленными
|
||
в ноль годом, месяцем и днем.
|
||
</entry>
|
||
</row>
|
||
<row>
|
||
<entry>5.1.0</entry>
|
||
<entry>
|
||
Если <function>mktime</function> была вызвана без аргументов,
|
||
то будет сгенерировано замечание уровня
|
||
<constant>E_STRICT</constant>. Используйте вместо этого
|
||
функцию <function>time</function>.
|
||
</entry>
|
||
</row>
|
||
|
||
&date.timezone.errors.changelog;
|
||
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="examples">
|
||
&reftitle.examples;
|
||
<para>
|
||
<example>
|
||
<title>Пример использования функции <function>mktime</function></title>
|
||
<programlisting role="php">
|
||
<![CDATA[
|
||
<?php
|
||
// Устанавливаем используемую по умолчанию временную зону. Доступно, начиная с версии PHP 5.1
|
||
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> example</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 strftime("Последний день февраля 2000 г.: %d", $lastday);
|
||
$lastday = mktime(0, 0, 0, 4, -31, 2000);
|
||
echo strftime("Последний день февраля 2000 г.: %d", $lastday);
|
||
?>
|
||
]]>
|
||
</programlisting>
|
||
</example>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="notes">
|
||
&reftitle.notes;
|
||
<caution>
|
||
<para>
|
||
До версии PHP 5.1.0, отрицательные временные метки не поддерживались
|
||
ни под одной известной версией Windows, а также и некоторыми другими
|
||
системами. Таким образом, диапазон корректных лет был ограничен
|
||
датами от 1970 до 2038 г.
|
||
</para>
|
||
</caution>
|
||
</refsect1>
|
||
|
||
<refsect1 role="seealso">
|
||
&reftitle.seealso;
|
||
<para>
|
||
<simplelist>
|
||
<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
|
||
-->
|