Files
php-doc-ru/reference/datetime/functions/mktime.xml
Max Chaban 53d94373d4 Updated translation.
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@324353 c90b9560-bf6c-de11-be94-00142212c4b1
2012-03-19 09:48:05 +00:00

341 lines
15 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: 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
-->