今天项目中要获取本周、本月、本季、本年的第一天,发现网上的方法或多或少都有问题,于是自己写了一个,亲测可用。
- 获取指定日期的周的第一天、月的第一天、季的第一天、年的第一天
- @param date new Date()形式,或是自定义参数的new Date()
- @returns 返回值为格式化的日期,yy-mm-dd
//日期格式化,返回值形式为yy-mm-dd
function timeFormat(date) { if (!date || typeof(date) === "string") { this.error("参数异常,请检查..."); } var y = date.getFullYear(); //年 var m = date.getMonth() + 1; //月 var d = date.getDate(); //日 return y + "-" + m + "-" + d; }
获取这周的周一
function getFirstDayOfWeek (date) { var weekday = date.getDay()||7; //获取星期几,getDay()返回值是 0(周日) 到 6(周六) 之间的一个整数。0||7为7,即weekday的值为1-7 date.setDate(date.getDate()-weekday+1);//往前算(weekday-1)天,年份、月份会自动变化 return timeFormat(date); }
//获取当月第一天
function getFirstDayOfMonth (date) { date.setDate(1); return timeFormat(date); }
//获取当季第一天
function getFirstDayOfSeason (date) { var month = date.getMonth(); if(month <3 ){ date.setMonth(0); }else if(2 < month && month < 6){ date.setMonth(3); }else if(5 < month && month < 9){ date.setMonth(6); }else if(8 < month && month < 11){ date.setMonth(9); } date.setDate(1); return timeFormat(date); }
//获取当年第一天
function getFirstDayOfYear (date) { date.setDate(1); date.setMonth(0); return timeFormat(date); }
找工作,没有面试题?来看这里, 扫码查看1000+ 前端面试题
WX搜索 【MST题库】小程序查看