Skip to content

Latest commit

 

History

History
147 lines (128 loc) · 3.42 KB

datetime.md

File metadata and controls

147 lines (128 loc) · 3.42 KB

日期與時間

Date.prototype.addHours

用來讓 Date 有 addHour 的功能。

Date.prototype.addHours = function(h){
	this.setHours(this.getHours()+h);
	return this;
}

getTimeFromstring

取得 SQL 的 timestamp 但是轉化成 javascript time 數字。

//範例
getTimeFromstring('2015-12-15 00:50:12');
//結果
1450111812000
function getTimeFromstring(time){
	var dpa=time.split(" ");
	var dpd=dpa[0].split("-");
	var dpt=dpa[1].split(":");
	var NEW_time = new Date(dpd[0],(dpd[1]-1),dpd[2],dpt[0],dpt[1],dpt[2]).getTime();
	return NEW_time;
}

taiwanTimeString

取得 SQL 的 timestamp 並且加 8 為台灣時間後呈現。Format 維持不變。

需搭配上方的 getTimeFromstring 以及 Date.prototype.addHours
//範例
taiwanTimeString('2015-12-15 00:50:12');
//結果
"2015-12-15 08:50:12"
function taiwanTimeString(dateTimeString){
	if(dateTimeString != "" && dateTimeString != null){
		var d = new Date(getTimeFromstring(dateTimeString));
		d = d.addHours(8);

		cY = d.getFullYear();
		cM = padLeft(d.getMonth()+1,2);
		cD = padLeft(d.getDate(),2);
		cHour = padLeft(d.getHours(),2);
		cMin = padLeft(d.getMinutes(),2);
		cSec = padLeft(d.getSeconds(),2);
		var convertTimeStr = cY+'-'+cM+'-'+cD+' '+cHour+':'+cMin+':'+cSec;
		
		return convertTimeStr;
	} else {
		return dateTimeString;
	}
}

function getTimeFromstring(time){
	var dpa=time.split(" ");
	var dpd=dpa[0].split("-");
	var dpt=dpa[1].split(":");
	var NEW_time = new Date(dpd[0],(dpd[1]-1),dpd[2],dpt[0],dpt[1],dpt[2]).getTime();
	return NEW_time;
}

trimTimeString

取得 SQL 的 timestamp 但是拿掉 -:。用來比較兩個時間的大小很方便。

//範例
trimTimeString('2015-12-15 00:50:12');
//結果
"20151215005012"

//比大小範例
trimTimeString('2015-12-15 00:50:12') > trimTimeString('2015-12-28 00:50:42')
//結果
false
function trimTimeString(string){
	if(string){
		var nowD = string.substr(0,4)+string.substr(5,2)+string.substr(8,2)+string.substr(11,2)+string.substr(14,2)+string.substr(17,2);		
		return nowD;
	}
}

getNowTimeStamp

用來取得現在的 timestamp,但可以指定要加減多少小時。如果你的網站到時候會需要 Global 的話可能需要類似這樣功能的 function 去顯示時間。

//範例 & 結果
getNowTimeStamp('ADD',8)
"20151215220308"
getNowTimeStamp('MINUS',2)
"20151215120353"
function getNowTimeStamp(action,hours){
	var d = new Date();

	if(hours != null){
		if(action == 'ADD'){
			d.setHours(d.getHours() + hours );
		} else if (action == 'MINUS'){
			d.setHours(d.getHours() - hours );
		}
	}

	var n = d.toISOString();
	var nowD = n.substr(0,4)+n.substr(5,2)+n.substr(8,2)+n.substr(11,2)+n.substr(14,2)+n.substr(17,2);

	return nowD;
}

getNowTimeString

getNowTimeStamp 一樣的功能,但是回傳的型態不一樣。這兩個 function 其實可以整合啦~

//範例 & 結果
getNowTimeString('ADD',8)
"2015-12-15 22:05:22"
getNowTimeString('MINUS',2)
"2015-12-15 12:05:12"
function getNowTimeString(action,hours){
	var d = new Date();

	if(hours != null){
		if(action == 'ADD'){
			d.setHours(d.getHours() + hours );
		} else if (action == 'MINUS'){
			d.setHours(d.getHours() - hours );
		}
	}

	var n = d.toISOString();
	var nowD = n.substr(0,10)+' '+n.substr(11,8);

	return nowD;
}