Categories: JavaScriptJQuery

[JQuery] input要素のdateタイプの値を計算する

たとえば、こんなふうに2つのdateタイプのinput要素があって、その期間を計算する方法です。




JQueryのスクリプトはこんな感じ。
setDate関数を作って、その中で計算しています。


日付のフォーマットは、こちらが参考になりました。
http://stackoverflow.com/questions/3066586/get-string-in-yyyymmdd-format-from-js-date-object

この部分です。

	var year = fromDate.getFullYear().toString();
	var mm = (fromDate.getMonth() + 1).toString();
	var dd = fromDate.getDate().toString();
	var yyyymmdd = year + '-' + (mm[1]?mm:"0"+mm[0]) + '-' + (dd[1]?dd:"0"+dd[0]);
	$('#date-end').val(yyyymmdd);

dateタイプのvalueを設定するには、2016-04-04のようなフォーマットでなければいけないようで、そのためのフォーマティングをここでやってます。
jQuery UI を使えば、もっとシンプルにできるようですが、ここでは使わない前提で。

日付の計算は簡単で、getTimeで取得した数値を引き算してるだけです。

	var days = Math.floor((toDate.getTime() - fromDate.getTime()) / 86400000);

getTimeで取得できるのは、1970/01/01 00:00:00から経過したミリ秒なので、60*60*24*1000 = 86400000 で割って、小数点以下は、Math.floorで切り捨て。

nakaike

Share
Published by
nakaike
Tags: DATEinput