1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
  
     | 
    
      <?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="intlcalendar.fielddifference" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
 <refnamediv>
  <refname>IntlCalendar::fieldDifference</refname>
  <refpurpose>Calculate difference between given time and this objectʼs time</refpurpose>
 </refnamediv>
 <refsect1 role="description">
  &reftitle.description;
  <para>
   &style.oop;
  </para>
  <methodsynopsis role="IntlCalendar">
   <modifier>public</modifier> <type class="union"><type>int</type><type>false</type></type><methodname>IntlCalendar::fieldDifference</methodname>
   <methodparam><type>float</type><parameter>timestamp</parameter></methodparam>
   <methodparam><type>int</type><parameter>field</parameter></methodparam>
  </methodsynopsis>
  <para>
   &style.procedural;
  </para>
  <methodsynopsis>
   <type class="union"><type>int</type><type>false</type></type><methodname>intlcal_field_difference</methodname>
   <methodparam><type>IntlCalendar</type><parameter>calendar</parameter></methodparam>
   <methodparam><type>float</type><parameter>timestamp</parameter></methodparam>
   <methodparam><type>int</type><parameter>field</parameter></methodparam>
  </methodsynopsis>
  <para>
   Return the difference between the given time and the time this object is
   set to, with respect to the quantity specified the
   <parameter>field</parameter> parameter.
  </para>
  <para>
   This method is meant to be called successively, first with the most
   significant field of interest down to the least significant field. To this
   end, as a side effect, this calendarʼs value for the field specified is
   advanced by the amount returned.
  </para>
 </refsect1>
 <refsect1 role="parameters">
  &reftitle.parameters;
  <variablelist>
   <varlistentry>
    <term><parameter>calendar</parameter></term>
    <listitem>
     &intl.parameter.intl-calendar;
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><parameter>timestamp</parameter></term>
    <listitem>
     <para>
      The time against which to compare the quantity represented by the
      <parameter>field</parameter>. For the result to be positive, the time
      given for this parameter must be ahead of the time of the object the
      method is being invoked on.
     </para>
    </listitem>
   </varlistentry>
   <varlistentry>
    <term><parameter>field</parameter></term>
    <listitem>
     <para>
      The field that represents the quantity being compared.
     </para>
     &reference.intl.incfieldparam;
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>
 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   Returns a (signed) difference of time in the unit associated with the
   specified field&return.falseforfailure;.
  </para>
 </refsect1>
 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
   <title><function>IntlCalendar::fieldDifference</function></title>
    <programlisting role="php">
<![CDATA[
<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'fr_FR');
$cal1 = IntlCalendar::fromDateTime('2012-02-29 09:00:11');
$cal2 = IntlCalendar::fromDateTime('2013-03-01 09:19:29');
$time = $cal2->getTime();
echo "Time before: ", IntlDateFormatter::formatObject($cal1), "\n";
printf(
    "The difference in time is %d year(s), %d month(s), "
  . "%d day(s), %d hour(s) and %d minute(s)\n",
    $cal1->fieldDifference($time, IntlCalendar::FIELD_YEAR),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_MONTH),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_DAY_OF_MONTH),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_HOUR_OF_DAY),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_MINUTE)
);
//now it was advanced to the target time, exception for the seconds,
//for which we did not measure the difference
echo "Time after: ", IntlDateFormatter::formatObject($cal1), "\n";
]]>
    </programlisting>
    &example.outputs;
    <screen>
<![CDATA[
Time before: 29 févr. 2012 09:00:11
The difference in time is 1 year(s), 0 month(s), 1 day(s), 0 hour(s) and 19 minute(s)
Time after: 1 mars 2013 09:19:11
]]>
    </screen>
   </example>
  </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
-->
 
     |