ColdFusion MX
目 次 > CFML リファレンス > ColdFusion 関数 > DateDiff O

DateDiff

date2 から date1 を引いた値の単位数を整数で取得します。

タイプ datepart の単位数

日付および時刻関数

DateDiff("datepart", "date1", "date2")

DateAddDatePartCreateTimeSpan

ColdFusion MX:

パラメータ

説明

datepart

どの単位で数えるかを指定する文字列です。たとえば、yyyy と指定すると、日付の差が丸何年かを求めます。

  • yyyy : 年
  • q : 四半期
  • m : 月
  • y : 年間通算日 (d と同じ)
  • d : 日
  • w : 週日 (ww と同じ)
  • ww : 週
  • h : 時
  • n : 分
  • s : 秒

date1

西暦 100 ~ 9999 年の期間の日付/時刻オブジェクトです。

date2

西暦 100 ~ 9999 年の期間の日付/時刻オブジェクトです。

DateDiff 関数は、2 つの日付の間に datepart 単位でどれだけの差があるかを求めます。たとえば、datepart パラメータが "m" で、日付の差が 55 日の場合、この関数は 1 を返します。

日付の文字列定数は引用符で囲みます。数値のみのテキスト (たとえば 1932) を引用符で囲まずに指定した場合は、日付/時刻オブジェクトとして解釈されるため、結果は誤った値となります。

<cfif IsDefined("form.value")>
   <cfset value = form.value>
</cfif>
<cfif IsDefined("form.type")>
   <cfset type = form.type>
</cfif>

<cfif IsDefined("form.date1") and IsDefined("form.date2")>

   <cfif IsDate(form.date1) and IsDate(form.date2)>
   
      <p>この例では、DateDiff を使用して、date 1 と date 2 の間隔を調べます。
      in    
      <cfswitch expression = "#form.type#">
         <cfcase value="yyyy">年</cfcase>
         <cfcase value="q">四半期</cfcase>
         <cfcase value="q">四半期</cfcase>
         <cfcase value="y">年間通算日</cfcase>   
         <cfcase value="d">日</cfcase>   
         <cfcase value="w">曜日</cfcase>   
         <cfcase value="ww">週</cfcase>   
         <cfcase value="h">時</cfcase>   
         <cfcase value="n">分</cfcase>   
         <cfcase value="s">秒</cfcase>      
         <cfdefaultcase>年</cfdefaultcase>
      </cfswitch>
         ここで、上の datepart を単位として使用します。
      
      <cfif DateCompare("#form.date1#","#form.date2#") is not 0>
      <p>間隔は <cfoutput>#Abs(DateDiff(type, form.date2, form.date1))#</cfoutput>
      <cfswitch expression = "#form.type#">
         <cfcase value="yyyy">年</cfcase>
         <cfcase value="q">四半期</cfcase>
         <cfcase value="q">四半期</cfcase>
         <cfcase value="y">年間通算日</cfcase>   
         <cfcase value="d">日</cfcase>   
         <cfcase value="w">曜日</cfcase>   
         <cfcase value="ww">週</cfcase>   
         <cfcase value="h">時</cfcase>   
         <cfcase value="n">分</cfcase>   
         <cfcase value="s">秒</cfcase>      
         <cfdefaultcase>年</cfdefaultcase>
      </cfswitch>です。
      <cfelse>
      <p>2 つは同じ日付です。どちらかの値を変えてみてください。
      </cfif>
   
   <cfelse>
   <p>2 つの有効な日付/時刻値を次のような形式で入力してください。
   <cfoutput>   #DateFormat(Now())#</cfoutput>
   </cfif>   

</cfif>
<form action="index.cfm" method="post">

<pre>
日付 1
<input type="Text" name="date1" value="<CFOUTPUT>#DateFormat(Now())#</CFOUTPUT>">
日付 2
<input type="Text" name="date2" value="<CFOUTPUT>#DateFormat(Now())#</CFOUTPUT>">
差の表示に使う単位
   <select name="type">
      <option value="yyyy" selected>年
      <option value="q">四半期
      <option value="m">月
      <option value="y">年間通算日
      <option value="d">日
      <option value="w">週日
      <option value="ww">週
      <option value="h">時
      <option value="n">分
      <option value="s">秒
   </select>
</pre>

<input type="Submit" name=""><input type="RESET">
</form>

.

目 次 > CFML リファレンス > ColdFusion 関数 > DateDiff O