javascript : 獲取當前月、下個月、上個月最后一天、下個月第一天


需求

初始化顯示當前月,格式yyyy.mm,例如:2021.02;
點擊左邊,顯示上一個月;
點擊右邊,顯示下一個月。

實現

代碼:**

getMonth : function(date){
	var year = date.getFullYear();
	var month = date.getMonth()+1;
	var day = date.getDate();
	if(month<10){
		month = "0"+month;
	}
	// 組裝當月第一天的字符串
	var str = year+"-"+month+"-01 00:00:00";
	var firstDateTime = new Date(str).getTime();
	// 獲取上個月最后一天的毫秒數
	var last = new Date(firstDateTime-1*24*60*60*1000).getTime();
	var m = date.getMonth()+2;
	var y = year;
	if(m>12){
		m = 1;
		y = y +1;
	}
	var str2 = y+"-"+m+"-01 00:00:00";
	// 獲取下個月第一天的毫秒數
	var next = new Date(str2).getTime();
	// 組裝需要的字符串
	var text = year+"."+month;
	// 組裝返回值
	var map = new Map();
	map["date"] = firstDateTime; // 當前月第一天的毫秒數
	map["text"] = text; // 當前月的字符串
	map["last"] = last; // 上個月最后一天的毫秒數
	map["next"] = next; // 下個月第一天的毫秒數
	return map;
}

用法:

核心邏輯就是:獲取當月的數據,同時返回上個月的最后一天毫秒數,以及下個月的第一天毫秒數,這樣就很容易關聯到上個月和下個月了。

  1. 設置個全局的monthMap,存儲數據;

  2. 設置個全局的monthText,顯示數據;

  3. 獲取當月數據:
    monthMap = getMonth(new Date())
    monthText = monthMap["text"]

4.獲取上個月數據
// 首先獲取上個月的最后一天的毫秒數
var time = monthMap["last"];
monthMap = getMonth(new Date(time));
monthText = monthMap["text"]

5.獲取下個月數據
和第4點一樣,只不過把last換成next.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM