1
0
mirror of https://github.com/php/doc-ja.git synced 2026-04-25 00:48:05 +02:00
Files
archived-doc-ja/reference/datetime/functions/mktime.xml
T
2022-08-27 09:08:30 +09:00

254 lines
9.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5c951013ca04161992efed8b86fb40f55669958e Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,mumumu -->
<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 epoch(1970年1月1日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> を呼び出すことは推奨されません。
現在のタイムスタンプを取得する目的には、<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>
で決まる日付の 0 時から数えた「時」。負の値は、その日の 0 時から前にさかのぼった時間を表します。
23 より大きい値は、その翌日以降の該当する時間を表します。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>minute</parameter></term>
<listitem>
<para>
<parameter>hour</parameter> 時 0 分から数えた「分」。
負の値は、その前の時刻を表します。
59 より大きい値は、その次の時間以降の該当する時間を表します。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>second</parameter></term>
<listitem>
<para>
<parameter>minute</parameter> 分 0 秒から数えた「秒」。
負の値は、その前の時刻を表します。
59 より大きい値は、その次の分以降の該当する時間を表します。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>month</parameter></term>
<listitem>
<para>
前年末から数えた月数。1 から 12 までの場合は、カレンダーどおりのその年の「月」を表します。
(負の値を含めた) 1 より小さい値は、前年の月を逆順でたどります。
つまり 0 なら 12 月、-1 なら 11 月になるということです。
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>
年。2 桁または 4 桁の値を指定可能で、
0-69 の間の値は 2000-2069 に、70-100 は 1970-2000 にマップされます。
今日最も一般的なシステム、すなわち time_t が 32 ビットの符号付き整数である
システムでは <parameter>year</parameter> として有効な範囲は 1901 から
2038 の間です。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<function>mktime</function> は与えられた引数の Unix
タイムスタンプを返します。
</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> は、オプションではなくなりました。
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>minute</parameter>, <parameter>second</parameter>, <parameter>month</parameter>,
<parameter>day</parameter>, <parameter>year</parameter> は、nullable になりました。
</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 番目の日ではなく、"0" 番目の日
として表すことが可能です。以下の例はともに文字列"The last day in
Feb 2000 is: 29" を出力します。
</para>
<programlisting role="php">
<![CDATA[
<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("Last day in Feb 2000 is: %d", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("Last day in Feb 2000 is: %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
-->