<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="datetime.settimezone.html">DateTime::setTimezone</a></div> <div class="next" style="text-align: right; float: right;"><a href="class.datetimeimmutable.html">DateTimeImmutable</a></div> <div class="up"><a href="class.datetime.html">DateTime</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="datetime.sub" class="refentry"> <div class="refnamediv"> <h1 class="refname">DateTime::sub</h1> <h1 class="refname">date_sub</h1> <p class="verinfo">(PHP 5 >= 5.3.0)</p><p class="refpurpose"><span class="refname">DateTime::sub</span> -- <span class="refname">date_sub</span> — <span class="dc-title"> Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object </span></p> </div> <div class="refsect1 description" id="refsect1-datetime.sub-description"> <h3 class="title">Description</h3> <p class="para">Object oriented style</p> <div class="methodsynopsis dc-description"> <span class="modifier">public</span> <span class="type"><a href="class.datetime.html" class="type DateTime">DateTime</a></span> <span class="methodname"><strong>DateTime::sub</strong></span> ( <span class="methodparam"><span class="type"><a href="class.dateinterval.html" class="type DateInterval">DateInterval</a></span> <code class="parameter">$interval</code></span> )</div> <p class="para rdfs-comment">Procedural style</p> <div class="methodsynopsis dc-description"> <span class="type"><a href="class.datetime.html" class="type DateTime">DateTime</a></span> <span class="methodname"><a href="function.date-sub.html" class="methodname">date_sub</a></span> ( <span class="methodparam"><span class="type"><a href="class.datetime.html" class="type DateTime">DateTime</a></span> <code class="parameter">$object</code></span> , <span class="methodparam"><span class="type"><a href="class.dateinterval.html" class="type DateInterval">DateInterval</a></span> <code class="parameter">$interval</code></span> )</div> <p class="para rdfs-comment"> Subtracts the specified <a href="class.dateinterval.html" class="classname">DateInterval</a> object from the specified DateTime object. </p> </div> <div class="refsect1 parameters" id="refsect1-datetime.sub-parameters"> <h3 class="title">Parameters</h3> <dl> <dt> <span class="term"><em><code class="parameter">object</code></em></span> <dd> <p class="para">Procedural style only: A <a href="class.datetime.html" class="classname">DateTime</a> object returned by <span class="function"><a href="function.date-create.html" class="function">date_create()</a></span>. The function modifies this object.</p></dd> </dt> <dt> <span class="term"> <em><code class="parameter">interval</code></em> </span> <dd> <p class="para"> A <a href="class.dateinterval.html" class="classname">DateInterval</a> object </p> </dd> </dt> </dl> </div> <div class="refsect1 returnvalues" id="refsect1-datetime.sub-returnvalues"> <h3 class="title">Return Values</h3> <p class="para"> Returns the <a href="class.datetime.html" class="classname">DateTime</a> object for method chaining or <strong><code>FALSE</code></strong> on failure. </p> </div> <div class="refsect1 examples" id="refsect1-datetime.sub-examples"> <h3 class="title">Examples</h3> <div class="example" id="example-2270"> <p><strong>Example #1 <span class="function"><strong>DateTime::sub()</strong></span> example</strong></p> <div class="example-contents"><p>Object oriented style</p></div> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$date </span><span style="color: #007700">= new </span><span style="color: #0000BB">DateTime</span><span style="color: #007700">(</span><span style="color: #DD0000">'2000-01-20'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$date</span><span style="color: #007700">-></span><span style="color: #0000BB">sub</span><span style="color: #007700">(new </span><span style="color: #0000BB">DateInterval</span><span style="color: #007700">(</span><span style="color: #DD0000">'P10D'</span><span style="color: #007700">));<br />echo </span><span style="color: #0000BB">$date</span><span style="color: #007700">-></span><span style="color: #0000BB">format</span><span style="color: #007700">(</span><span style="color: #DD0000">'Y-m-d'</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>Procedural style</p></div> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$date </span><span style="color: #007700">= </span><span style="color: #0000BB">date_create</span><span style="color: #007700">(</span><span style="color: #DD0000">'2000-01-20'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">date_sub</span><span style="color: #007700">(</span><span style="color: #0000BB">$date</span><span style="color: #007700">, </span><span style="color: #0000BB">date_interval_create_from_date_string</span><span style="color: #007700">(</span><span style="color: #DD0000">'10 days'</span><span style="color: #007700">));<br />echo </span><span style="color: #0000BB">date_format</span><span style="color: #007700">(</span><span style="color: #0000BB">$date</span><span style="color: #007700">, </span><span style="color: #DD0000">'Y-m-d'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above examples will output:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> 2000-01-10 </pre></div> </div> </div> <div class="example" id="example-2271"> <p><strong>Example #2 Further <span class="function"><strong>DateTime::sub()</strong></span> examples</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$date </span><span style="color: #007700">= new </span><span style="color: #0000BB">DateTime</span><span style="color: #007700">(</span><span style="color: #DD0000">'2000-01-20'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$date</span><span style="color: #007700">-></span><span style="color: #0000BB">sub</span><span style="color: #007700">(new </span><span style="color: #0000BB">DateInterval</span><span style="color: #007700">(</span><span style="color: #DD0000">'PT10H30S'</span><span style="color: #007700">));<br />echo </span><span style="color: #0000BB">$date</span><span style="color: #007700">-></span><span style="color: #0000BB">format</span><span style="color: #007700">(</span><span style="color: #DD0000">'Y-m-d H:i:s'</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$date </span><span style="color: #007700">= new </span><span style="color: #0000BB">DateTime</span><span style="color: #007700">(</span><span style="color: #DD0000">'2000-01-20'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$date</span><span style="color: #007700">-></span><span style="color: #0000BB">sub</span><span style="color: #007700">(new </span><span style="color: #0000BB">DateInterval</span><span style="color: #007700">(</span><span style="color: #DD0000">'P7Y5M4DT4H3M2S'</span><span style="color: #007700">));<br />echo </span><span style="color: #0000BB">$date</span><span style="color: #007700">-></span><span style="color: #0000BB">format</span><span style="color: #007700">(</span><span style="color: #DD0000">'Y-m-d H:i:s'</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example will output:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> 2000-01-19 13:59:30 1992-08-15 19:56:58 </pre></div> </div> </div> <div class="example" id="example-2272"> <p><strong>Example #3 Beware when subtracting months</strong></p> <div class="example-contents"> <div class="phpcode"><code><span style="color: #000000"> <span style="color: #0000BB"><?php<br />$date </span><span style="color: #007700">= new </span><span style="color: #0000BB">DateTime</span><span style="color: #007700">(</span><span style="color: #DD0000">'2001-04-30'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$interval </span><span style="color: #007700">= new </span><span style="color: #0000BB">DateInterval</span><span style="color: #007700">(</span><span style="color: #DD0000">'P1M'</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$date</span><span style="color: #007700">-></span><span style="color: #0000BB">sub</span><span style="color: #007700">(</span><span style="color: #0000BB">$interval</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">$date</span><span style="color: #007700">-></span><span style="color: #0000BB">format</span><span style="color: #007700">(</span><span style="color: #DD0000">'Y-m-d'</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /><br /></span><span style="color: #0000BB">$date</span><span style="color: #007700">-></span><span style="color: #0000BB">sub</span><span style="color: #007700">(</span><span style="color: #0000BB">$interval</span><span style="color: #007700">);<br />echo </span><span style="color: #0000BB">$date</span><span style="color: #007700">-></span><span style="color: #0000BB">format</span><span style="color: #007700">(</span><span style="color: #DD0000">'Y-m-d'</span><span style="color: #007700">) . </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?></span> </span> </code></div> </div> <div class="example-contents"><p>The above example will output:</p></div> <div class="example-contents screen"> <div class="cdata"><pre> 2001-03-30 2001-03-02 </pre></div> </div> </div> </div> <div class="refsect1 notes" id="refsect1-datetime.sub-notes"> <h3 class="title">Notes</h3> <p class="para"> <span class="function"><a href="datetime.modify.html" class="function">DateTime::modify()</a></span> is an alternative when using PHP 5.2. </p> </div> <div class="refsect1 seealso" id="refsect1-datetime.sub-seealso"> <h3 class="title">See Also</h3> <ul class="simplelist"> <li class="member"> <span class="function"><a href="datetime.add.html" class="function" rel="rdfs-seeAlso">DateTime::add()</a> - Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object</span></li> <li class="member"> <span class="function"><a href="datetime.diff.html" class="function" rel="rdfs-seeAlso">DateTime::diff()</a> - Returns the difference between two DateTime objects</span></li> <li class="member"> <span class="function"><a href="datetime.modify.html" class="function" rel="rdfs-seeAlso">DateTime::modify()</a> - Alters the timestamp</span></li> </ul> </div> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="datetime.settimezone.html">DateTime::setTimezone</a></div> <div class="next" style="text-align: right; float: right;"><a href="class.datetimeimmutable.html">DateTimeImmutable</a></div> <div class="up"><a href="class.datetime.html">DateTime</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>