<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.dateinterval.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'dateinterval.construct.php',
    1 => 'DateInterval::__construct',
    2 => 'Crea un nuevo objeto DateInterval',
  ),
  'up' => 
  array (
    0 => 'class.dateinterval.php',
    1 => 'DateInterval',
  ),
  'prev' => 
  array (
    0 => 'class.dateinterval.php',
    1 => 'DateInterval',
  ),
  'next' => 
  array (
    0 => 'dateinterval.createfromdatestring.php',
    1 => 'DateInterval::createFromDateString',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/datetime/dateinterval/construct.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="dateinterval.construct" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">DateInterval::__construct</h1>
  <p class="verinfo">(PHP 5 &gt;= 5.3.0, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">DateInterval::__construct</span> &mdash; <span class="dc-title">Crea un nuevo objeto DateInterval</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-dateinterval.construct-description">
  <h3 class="title">Descripción</h3>
  <div class="constructorsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>DateInterval::__construct</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$duration</code></span>)</div>

  <p class="para rdfs-comment">
   Crea un nuevo objeto DateInterval.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-dateinterval.construct-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">duration</code></dt>
     <dd>
      <p class="para">
       Una especificación de intervalo.
      </p>
      <p class="para">
       El formato empieza con la letra <code class="literal">P</code>,
       de <q class="quote">periodo.</q>
       Cada periodo de duración está representado por un valor de tipo integer
       seguido de un indicador de periodo.
       Si la duración contiene elementos de hora, esa parte
       de la especificación estará precedida por una letra
       <code class="literal">T</code>.
      </p>
      <p class="para">
       <table class="doctable table">
        <caption><strong>
         Indicadores de periodo de <code class="parameter">duration</code>
        </strong></caption>
        
         <thead>
          <tr>
           <th>Indicador de periodo</th>
           <th>Descripción</th>
          </tr>

         </thead>

         <tbody class="tbody">
          <tr>
           <td><code class="literal">Y</code></td>
           <td>años</td>
          </tr>

          <tr>
           <td><code class="literal">M</code></td>
           <td>meses</td>
          </tr>

          <tr>
           <td><code class="literal">D</code></td>
           <td>días</td>
          </tr>

          <tr>
           <td><code class="literal">W</code></td>
           <td>
            semanas; estas se convierten a días,
            Antes de PHP 8.0.0, no se puede combinar con <code class="literal">D</code>.
           </td>
          </tr>

          <tr>
           <td><code class="literal">H</code></td>
           <td>horas</td>
          </tr>

          <tr>
           <td><code class="literal">M</code></td>
           <td>minutos</td>
          </tr>

          <tr>
           <td><code class="literal">S</code></td>
           <td>segundos</td>
          </tr>

         </tbody>
        
       </table>

      </p>
      <p class="para">
       Algunos ejemplos sencillos:
       Dos días es <code class="literal">P2D</code>.
       Dos segundos es <code class="literal">PT2S</code>.
       Seis años y cinco minutos es <code class="literal">P6YT5M</code>.
      </p>
      <blockquote class="note"><p><strong class="note">Nota</strong>: 
       <p class="para">
        Los tipos de unidades deben ser escritos desde la unidad de
        escala más grande a la izquierda a la unidad de escala más pequeña
        a la derecha.
        Así los años van antes que los meses, meses antes que días,
        días antes que minutos, etc.
        Así un año y cuatro días debe representarse como
        <code class="literal">P1Y4D</code>, y no como <code class="literal">P4D1Y</code>.
       </p>
      </p></blockquote>
      <p class="para">
       La especificación también puede ser representada como una fecha/hora.
       Un ejemplo de un año y cuatro días sería
       <code class="literal">P0001-00-04T00:00:00</code>.
       Pero los valores en este formato no pueden exceder el punto de desbordamiento
       de un periodo (p.ej. <code class="literal">25</code> horas no es válido).
      </p>
      <p class="para">
       Estos formatos están basados en la <a href="http://en.wikipedia.org/wiki/Iso8601#Durations" class="link external">&raquo;&nbsp;
       especificación de duración ISO 8601</a>.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 errors" id="refsect1-dateinterval.construct-errors">
  <h3 class="title">Errores/Excepciones</h3>
  <p class="para">
   Lanza una <span class="classname"><a href="class.datemalformedintervalstringexception.php" class="classname">DateMalformedIntervalStringException</a></span> cuando
   el <code class="parameter">duration</code> no puede ser analizado como un intervalo.
   Antes de PHP 8.3, esto era <span class="exceptionname"><a href="class.exception.php" class="exceptionname">Exception</a></span>.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-dateinterval.construct-changelog">
  <h3 class="title">Historial de cambios</h3>
  <table class="doctable informaltable">
   
    <thead>
     <tr>
      <th>Versión</th>
      <th>Descripción</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8.3.0</td>
      <td>
       Ahora lanza
       <span class="exceptionname"><a href="class.datemalformedintervalstringexception.php" class="exceptionname">DateMalformedIntervalStringException</a></span>
       en lugar de <span class="exceptionname"><a href="class.exception.php" class="exceptionname">Exception</a></span>.
      </td>
     </tr>

     <tr>
      <td>8.2.0</td>
      <td>
       Solo serán visibles las propiedades <code class="literal">y</code> a <code class="literal">f</code>,
       <code class="literal">invert</code> y <code class="literal">days</code>, incluyendo una nueva
       propiedad booleana <code class="literal">from_string</code>.
      </td>
     </tr>

     <tr>
      <td>8.0.0</td>
      <td>
       <code class="literal">W</code> se puede combinar con <code class="literal">D</code>.
      </td>
     </tr>

    </tbody>
   
  </table>

 </div>


 <div class="refsect1 examples" id="refsect1-dateinterval.construct-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Construyendo y usando objetos <span class="classname"><a href="class.dateinterval.php" class="classname">DateInterval</a></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: #FF8000">// Crea una fecha especifica<br /></span><span style="color: #0000BB">$someDate </span><span style="color: #007700">= </span><span style="color: #0000BB">\DateTime</span><span style="color: #007700">::</span><span style="color: #0000BB">createFromFormat</span><span style="color: #007700">(</span><span style="color: #DD0000">"Y-m-d H:i"</span><span style="color: #007700">, </span><span style="color: #DD0000">"2022-08-25 14:18"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Crea un intervalo<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">"P7D"</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Añade el intervalo<br /></span><span style="color: #0000BB">$someDate</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">add</span><span style="color: #007700">(</span><span style="color: #0000BB">$interval</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Convierte el intervalo a string<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$interval</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">format</span><span style="color: #007700">(</span><span style="color: #DD0000">"%d"</span><span style="color: #007700">);</span></span></code></div>
    </div>

    <div class="example-contents"><p>El ejemplo anterior mostrará:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">7</pre>
</div>
    </div>
   </div>
  </p>

  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Ejemplo #2 Ejemplo de <span class="classname"><a href="class.dateinterval.php" class="classname">DateInterval</a></span></strong></p>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$interval </span><span style="color: #007700">= new </span><span style="color: #0000BB">DateInterval</span><span style="color: #007700">(</span><span style="color: #DD0000">'P1W2D'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$interval</span><span style="color: #007700">);</span></span></code></div>
    </div>

    <div class="example-contents"><p>Resultado del ejemplo anterior en PHP 8.2:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">object(DateInterval)#1 (10) {
  [&quot;y&quot;]=&gt;
  int(0)
  [&quot;m&quot;]=&gt;
  int(0)
  [&quot;d&quot;]=&gt;
  int(9)
  [&quot;h&quot;]=&gt;
  int(0)
  [&quot;i&quot;]=&gt;
  int(0)
  [&quot;s&quot;]=&gt;
  int(0)
  [&quot;f&quot;]=&gt;
  float(0)
  [&quot;invert&quot;]=&gt;
  int(0)
  [&quot;days&quot;]=&gt;
  bool(false)
  [&quot;from_string&quot;]=&gt;
  bool(false)
}</pre>
</div>
    </div>
    <div class="example-contents"><p>Resultado del ejemplo anterior en PHP 8:</p></div>
    <div class="example-contents screen">
<div class="annotation-interactive examplescode"><pre class="examplescode">object(DateInterval)#1 (16) {
  [&quot;y&quot;]=&gt;
  int(0)
  [&quot;m&quot;]=&gt;
  int(0)
  [&quot;d&quot;]=&gt;
  int(9)
  [&quot;h&quot;]=&gt;
  int(0)
  [&quot;i&quot;]=&gt;
  int(0)
  [&quot;s&quot;]=&gt;
  int(0)
  [&quot;f&quot;]=&gt;
  float(0)
  [&quot;weekday&quot;]=&gt;
  int(0)
  [&quot;weekday_behavior&quot;]=&gt;
  int(0)
  [&quot;first_last_day_of&quot;]=&gt;
  int(0)
  [&quot;invert&quot;]=&gt;
  int(0)
  [&quot;days&quot;]=&gt;
  bool(false)
  [&quot;special_type&quot;]=&gt;
  int(0)
  [&quot;special_amount&quot;]=&gt;
  int(0)
  [&quot;have_weekday_relative&quot;]=&gt;
  int(0)
  [&quot;have_special_relative&quot;]=&gt;
  int(0)
}</pre>
</div>
    </div>
    <div class="example-contents"><p>Resultado del ejemplo anterior en PHP 7:</p></div>
    <div class="example-contents screen">
     <div class="annotation-interactive examplescode"><pre class="examplescode">object(DateInterval)#1 (16) {
  [&quot;y&quot;]=&gt;
  int(0)
  [&quot;m&quot;]=&gt;
  int(0)
  [&quot;d&quot;]=&gt;
  int(2)
  [&quot;h&quot;]=&gt;
  int(0)
  [&quot;i&quot;]=&gt;
  int(0)
  [&quot;s&quot;]=&gt;
  int(0)
  [&quot;f&quot;]=&gt;
  float(0)
  [&quot;weekday&quot;]=&gt;
  int(0)
  [&quot;weekday_behavior&quot;]=&gt;
  int(0)
  [&quot;first_last_day_of&quot;]=&gt;
  int(0)
  [&quot;invert&quot;]=&gt;
  int(0)
  [&quot;days&quot;]=&gt;
  bool(false)
  [&quot;special_type&quot;]=&gt;
  int(0)
  [&quot;special_amount&quot;]=&gt;
  int(0)
  [&quot;have_weekday_relative&quot;]=&gt;
  int(0)
  [&quot;have_special_relative&quot;]=&gt;
  int(0)
}</pre>
</div>
    </div>
   </div>
  </p>
 </div>





 <div class="refsect1 seealso" id="refsect1-dateinterval.construct-seealso">
  <h3 class="title">Ver también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="dateinterval.format.php" class="function" rel="rdfs-seeAlso">DateInterval::format()</a> - Formatea el intervalo</span></li>
    <li><span class="function"><a href="datetime.add.php" class="function" rel="rdfs-seeAlso">DateTime::add()</a> - Modifica un objeto DateTime, a&ntilde;adiendo una cantidad de d&iacute;as, meses, a&ntilde;os, horas, minutos y segundos</span></li>
    <li><span class="function"><a href="datetime.sub.php" class="function" rel="rdfs-seeAlso">DateTime::sub()</a> - Sustrae una cantidad de d&iacute;as, meses, a&ntilde;os, horas, minutos y segundos de un objeto
   DateTime</span></li>
    <li><span class="function"><a href="datetime.diff.php" class="function" rel="rdfs-seeAlso">DateTime::diff()</a> - Devuelve la diferencia entre dos objetos DateTime</span></li>
   </ul>
  </p>
 </div>


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