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;
}
用法:
核心逻辑就是:获取当月的数据,同时返回上个月的最后一天毫秒数,以及下个月的第一天毫秒数,这样就很容易关联到上个月和下个月了。
-
设置个全局的monthMap,存储数据;
-
设置个全局的monthText,显示数据;
-
获取当月数据:
monthMap = getMonth(new Date())
monthText = monthMap["text"]
4.获取上个月数据
// 首先获取上个月的最后一天的毫秒数
var time = monthMap["last"];
monthMap = getMonth(new Date(time));
monthText = monthMap["text"]
5.获取下个月数据
和第4点一样,只不过把last换成next.
分类:
前端合集
posted on 2022-03-16 16:42 northwest 阅读(2496) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~