DATEDIFF  
説明

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

 
戻り値

タイプ datepart の単位数

 
カテゴリ

日付および時刻関数

 
関数のシンタックス
DateDiff("datepart", "date1", "date2")
 
関連項目

DateAdd、DatePart、CreateTimeSpan

 
ヒストリ

ColdFusion MX:

  • 日付の差が負の数の場合の計算方法の変更 : この関数では、日付の差が負の数になった場合も正しく計算できるようになりました。出力は以前のリリースとは異なる場合があります。
  • w 属性および ww マスクの変更 : 2 つの日付の間が丸何週間かを求めます。
 
パラメータ

 
使用方法

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 の間隔を調べます。
         
      <cfswitch expression = "#form.type#">
         <cfcase value="yyyy">年</cfcase>
         <cfcase value="q">四半期</cfcase>
         <cfcase value="m">か月</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="m">か月</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>

.
DATEPART  
どの単位で数えるかを指定する文字列です。たとえば、yyyy と指定すると、日付の差が丸何年か を求めます。
  • yyyy: 年
  • q: 四半期
  • m: 月
  • y: 年間通算日 (d と同じ)
  • d: 日
  • w: 週日 (ww と同じ)
  • ww: 週
  • h: 時
  • n: 分
  • s: 秒
DATE1  
日付時刻オブジェクトです。値の範囲は西暦 100 〜 9999 年です。
DATE2  
日付時刻オブジェクトです。値の範囲は西暦 100 〜 9999 年です。