<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.datetime.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'function.strtotime.php',
    1 => 'strtotime',
    2 => '英文形式の日付を Unix タイムスタンプに変換する',
  ),
  'up' => 
  array (
    0 => 'ref.datetime.php',
    1 => '日付・時刻 関数',
  ),
  'prev' => 
  array (
    0 => 'function.strptime.php',
    1 => 'strptime',
  ),
  'next' => 
  array (
    0 => 'function.time.php',
    1 => 'time',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/datetime/functions/strtotime.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.strtotime" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">strtotime</h1>
  <p class="verinfo">(PHP 4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">strtotime</span> &mdash; <span class="dc-title">
   英文形式の日付を Unix タイムスタンプに変換する
  </span></p>

 </div>
 <div class="refsect1 description" id="refsect1-function.strtotime-description">
  <h3 class="title">説明</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>strtotime</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$datetime</code></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></span> <code class="parameter">$baseTimestamp</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>): <span class="type"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span>|<span class="type"><a href="language.types.singleton.php" class="type false">false</a></span></span></div>

  <p class="simpara">
   この関数は英語の書式での日付を含む文字列が指定されることを期待しており、
   その書式を Unix タイムスタンプ (1970 年 1 月 1 日 00:00:00 UTC からの経過秒数) に変換しようとします。
   <code class="parameter">baseTimestamp</code> が指定された場合は、そのタイムスタンプを基準とした相対時刻のタイムスタンプに変換します。
   <code class="parameter">baseTimestamp</code> が指定されていない場合は、現在時刻を基準とした相対時刻のタイムスタンプに変換します。
   パースされる日付を含む文字列の書式は、
   <a href="datetime.formats.php" class="link">サポートする日付と時刻の書式</a> で定義されており、考慮すべき微妙な点がいくつかあります。
   サポートする日付と時刻の書式について、読んでおくことを強く推奨します。
  </p>
  <div class="warning"><strong class="warning">警告</strong>
   <p class="para">
    この関数が返す Unixタイムスタンプ は、タイムゾーンの情報を含んでいません。
    日付/時刻の情報を含めて計算するには、
    より多くの機能がある <span class="classname"><a href="class.datetimeimmutable.php" class="classname">DateTimeImmutable</a></span> を使うべきです。
   </p>
  </div>
  <p class="para">
   この関数の各パラメータでは、パラメータ内でタイムゾーンを指定しない限りはデフォルトのタイムゾーンを使います。
   意図的にそうする場合は別として、パラメータごとにタイムゾーンを変えてしまったりしないように気をつけましょう。
   デフォルトのタイムゾーンを定義する方法については
   <span class="function"><a href="function.date-default-timezone-get.php" class="function">date_default_timezone_get()</a></span> を参照ください。
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.strtotime-parameters">
  <h3 class="title">パラメータ</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">datetime</code></dt>
     <dd>
      <p class="para">日付/時刻 文字列。有効な書式については <a href="datetime.formats.php" class="link">日付と時刻の書式</a> で説明しています。</p>
     </dd>
    
    
     <dt><code class="parameter">baseTimestamp</code></dt>
     <dd>
      <p class="para">
       返される値を計算するために使用されるタイムスタンプ。
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.strtotime-returnvalues">
  <h3 class="title">戻り値</h3>
  <p class="para">
   成功時はタイムスタンプ、そうでなければ <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> を返します。
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-function.strtotime-errors">
  <h3 class="title">エラー / 例外</h3>
   
   <p class="para">
すべての日付/時刻関数は、
有効なタイムゾーンが設定されていない場合に <strong><code><a href="errorfunc.constants.php#constant.e-warning">E_WARNING</a></code></strong>
を発生させます。
<span class="function"><a href="function.date-default-timezone-set.php" class="function">date_default_timezone_set()</a></span> も参照ください。</p>
 
 </div>


 <div class="refsect1 changelog" id="refsect1-function.strtotime-changelog">
  <h3 class="title">変更履歴</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>バージョン</th>
       <th>説明</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.0.0</td>
       <td>
        <code class="parameter">baseTimestamp</code> は、nullable になりました。
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.strtotime-examples">
  <h3 class="title">例</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>例1 <span class="function"><strong>strtotime()</strong></span> の例</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">strtotime</span><span style="color: #007700">(</span><span style="color: #DD0000">"now"</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">strtotime</span><span style="color: #007700">(</span><span style="color: #DD0000">"10 September 2000"</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">strtotime</span><span style="color: #007700">(</span><span style="color: #DD0000">"+1 day"</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">strtotime</span><span style="color: #007700">(</span><span style="color: #DD0000">"+1 week"</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">strtotime</span><span style="color: #007700">(</span><span style="color: #DD0000">"+1 week 2 days 4 hours 2 seconds"</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">strtotime</span><span style="color: #007700">(</span><span style="color: #DD0000">"next Thursday"</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />echo </span><span style="color: #0000BB">strtotime</span><span style="color: #007700">(</span><span style="color: #DD0000">"last Monday"</span><span style="color: #007700">), </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>例2 失敗のチェック</strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$str </span><span style="color: #007700">= </span><span style="color: #DD0000">'Not Good'</span><span style="color: #007700">;<br /><br />if ((</span><span style="color: #0000BB">$timestamp </span><span style="color: #007700">= </span><span style="color: #0000BB">strtotime</span><span style="color: #007700">(</span><span style="color: #0000BB">$str</span><span style="color: #007700">)) === </span><span style="color: #0000BB">false</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"The string (</span><span style="color: #0000BB">$str</span><span style="color: #DD0000">) is bogus"</span><span style="color: #007700">;<br />} else {<br />    echo </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$str</span><span style="color: #DD0000"> == " </span><span style="color: #007700">. </span><span style="color: #0000BB">date</span><span style="color: #007700">(</span><span style="color: #DD0000">'l dS \o\f F Y h:i:s A'</span><span style="color: #007700">, </span><span style="color: #0000BB">$timestamp</span><span style="color: #007700">);<br />}</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.strtotime-notes">
  <h3 class="title">注意</h3>
  <blockquote class="note"><p><strong class="note">注意</strong>: 
   <p class="para">
    &quot;相対的な&quot; 日付とは、
    日付/時刻の一部の情報が与えられていないということでもあります。
    与えられていない情報は <code class="parameter">baseTimestamp</code>
    から取得されます。
    つまり、2022年5月31日 (31st of May 2022) に
    <code class="code">strtotime(&#039;February&#039;)</code> を実行すると、
    <code class="literal">31 February 2022</code> と解釈されて日付がオーバーフローし、
    <code class="literal">3 March</code> になります(うるう年の場合、<code class="literal">2 March</code> になります)。
    <code class="code">strtotime(&#039;1 February&#039;)</code> や
    <code class="code">strtotime(&#039;first day of February&#039;)</code>
    を使うことで、この問題は回避できます。
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">注意</strong>: 
   <p class="para">
    年を 2 桁の数値で指定した場合、その値が 00-69 なら 2000-2069 に、
    70-99 なら 1970-1999 にそれぞれ変換されます。
    32 ビットシステム上での相違点 (2038-01-19 03:14:07
    までの日付しか表せない) については以下の注意を参照ください。
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">注意</strong>: 
   <p class="para">
    タイムスタンプの有効な範囲は、通常、Fri, 13 Dec 1901 20:45:54
    UTC から Tue, 19 Jan 2038 03:14:07 UTC までです (これらは、32
    ビット符号付整数の最大及び最小に一致します)。
   </p>
   <p class="para">
    64 ビット版の PHP では、タイムスタンプの有効範囲は事実上無制限です。
    というのも、64 ビットでは過去側も未来側も約 2930 億年を表せるからです。
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">注意</strong>: 
   <p class="para">
    この関数を使って日付の足し算や引き算を行うことはおすすめできません。
    <span class="methodname"><a href="datetime.add.php" class="methodname">DateTime::add()</a></span> や
    <span class="methodname"><a href="datetime.sub.php" class="methodname">DateTime::sub()</a></span> を使いましょう。
   </p>
  </p></blockquote>
 </div>


 <div class="refsect1 seealso" id="refsect1-function.strtotime-seealso">
  <h3 class="title">参考</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="classname"><a href="class.datetimeimmutable.php" class="classname">DateTimeImmutable</a></span></li>
    <li><span class="methodname"><a href="datetimeimmutable.createfromformat.php" class="methodname" rel="rdfs-seeAlso">DateTimeImmutable::createFromFormat()</a> - 時刻の文字列を指定されたフォーマットに従ってパースする</span></li>
    <li><a href="datetime.formats.php" class="link">日付と時刻の書式</a></li>
    <li><span class="function"><a href="function.checkdate.php" class="function" rel="rdfs-seeAlso">checkdate()</a> - グレゴリオ暦の日付/時刻の妥当性を確認します</span></li>
    <li><span class="function"><a href="function.strptime.php" class="function" rel="rdfs-seeAlso">strptime()</a> - strftime が生成した日付/時刻をパースする</span></li>
   </ul>
  </p>
 </div>

</div><?php manual_footer($setup); ?>