Jqueryで、日付関連の取得とか($.getDateObj)

提供:wiki - PCスキルの小技・忘却防止メモ
移動: 案内, 検索

jqueryで、日付関連の取得とか($.getDateObj)。date()関数で取得してもあれこれするのが面倒なので、まるっと変換しておく

目次

ソース

getDateObj: function getDateObj(dateStr) {
	/// <summary>
	/// 日時のデータをオブジェクトにして返す
	/// 
	/// dateStr : 日時の文字列
	/// 引数が無しだったり、Date()で失敗するなら強制的に「今日」にする。
	/// </summary>
	
	var result = false;
	
	var now = false;
	if (dateStr != undefined) {
		if (dateStr.match("-") != null) {
			var tmpAry = dateStr.split("-");
			if (3 <= tmpAry.length) {
				now = new Date(tmpAry[0], parseFloat(tmpAry[1]) - 1, tmpAry[2]);
			}
		}
		else if (dateStr.match('/') != null) {
			var tmpAry = dateStr.split('/');
			if (3 <= tmpAry.length) {
				now = new Date(tmpAry[0], parseFloat(tmpAry[1]) - 1, tmpAry[2]);
			}
		}
		else {
			var now = new Date(dateStr);
		}
	}
	
	if(now == false || now.toJSON() == null) {
		var now = new Date();
	}
	
	var tmpObj = ({});
	
	tmpObj.Y  = now.getFullYear();
	tmpObj.m  = now.getMonth() + 1;
	tmpObj.mm = $.convertNumberDigits(tmpObj.m, 2);
	tmpObj.d  = now.getDate();
	tmpObj.dd = $.convertNumberDigits(tmpObj.d, 2);
	
	tmpObj.H  = now.getHours();
	tmpObj.HH = $.convertNumberDigits(tmpObj.H, 2);
	tmpObj.i  = now.getMinutes();
	tmpObj.ii = $.convertNumberDigits(tmpObj.i, 2);
	tmpObj.s  = now.getSeconds();
	tmpObj.ss = $.convertNumberDigits(tmpObj.s, 2);
	
	tmpObj.full      = now.toString();
	tmpObj.json      = now.toJSON();
	tmpObj.time      = now.toTimeString();
	tmpObj.date      = now.toDateString();
	tmpObj.Ymd1      = tmpObj.Y + "-" + tmpObj.m  + "-" + tmpObj.d;
	tmpObj.Ymmdd1    = tmpObj.Y + "-" + tmpObj.mm + "-" + tmpObj.dd;
	tmpObj.Ymd2      = tmpObj.Y + "/" + tmpObj.m  + "/" + tmpObj.d;
	tmpObj.Ymmdd2    = tmpObj.Y + "/" + tmpObj.mm + "/" + tmpObj.dd;
	tmpObj.His       = tmpObj.H  + ":" + tmpObj.i  + ":" + tmpObj.s;
	tmpObj.HHiiss    = tmpObj.HH + ":" + tmpObj.ii + ":" + tmpObj.ss;
	
	tmpObj.last      = new Date(tmpObj.Y, tmpObj.m, 0).getDate();
	
	return tmpObj;
}

別ファイルでするなら「function($) {$.extend(){}}」内にいれておく。

桁数をそろえるのに別のヤツ($.convertNumberDigits)をつかってる

使い方

例えば、「今日」が欲しいとき

var strNum= $.getDateObj();

例えば、「2013-04-07」が欲しいとき

var strNum= $.getDateObj("2013-04-07");

実行結果

「var a = $.getDateObj("2013/1/6")」としたときの戻り値。

a.Y 2013
a.m 1
a.mm 01
a.d 6
a.dd 06
a.H 0
a.HH 00
a.i 0
a.ii 00
a.s 0
a.ss 00
a.full Sun Jan 06 2013 00:00:00 GMT+0900
a.json 2013-01-06T15:00:00.000Z
a.time 00:00:00 GMT+0900
a.date Sun, 05 Jan 2013
a.Ymd1 2013-1-6
a.Ymmdd1 2013-01-06
a.Ymd2 2013/1/6
a.Ymmdd2 2013/01/06
a.His 0:0:0
a.HHiiss 00:00:00
a.last 31

関連項目