let currDate = moment(new Date(),"YYYY-MM-DD");
var firstDay= moment(currDate.startOf("month").valueOf()).format('YYYY-MM-DD');//获取该月份第一天的时间戳
var endDay = moment(currDate.endOf("month").valueOf()).format('YYYY-MM-DD');//获取该月份最后一天的时间戳
var monday = moment().weekday(0).format('YYYY-MM-DD');//本周一
var sunday = moment().weekday(6).format('YYYY-MM-DD');//本周日
2, java 获取当月第一天和最后一天
//获取当月第一天
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String firstDay, lastDay;
Calendar cale = null;
cale = Calendar.getInstance();
// 获取当前月的第一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 0);
cale.set(Calendar.DAY_OF_MONTH, 1);
firstDay = format.format(cale.getTime());
// 获取当前月的最后一天
cale = Calendar.getInstance();
cale.add(Calendar.MONTH, 1);
cale.set(Calendar.DAY_OF_MONTH, 0);
lastDay = format.format(cale.getTime());
3,java获取当前周一和周日,上周一和上周日
* 获取 date 日期 的上一周的开始结束日期,即使给定的日期是周一 也会 计算上一周的日期
* @param date 基准日期点
* @return [0]:上一周的开始日期;[1] 上一周的结束日期
public static LocalDate[] getLastWeek(LocalDate date) {
LocalDate[] weeks = new LocalDate[2];
LocalDate localDate = date.minusWeeks(1);
weeks[0] = localDate.with(DayOfWeek.MONDAY);
weeks[1] = localDate.with(DayOfWeek.SUNDAY);
return weeks;
* 获取 date 日期 的这一周的开始结束日期,即使给定的日期是周一 也会 计算这一周的日期
* @param date 基准日期点
* @return [0]:这一周的开始日期;[1] 这一周的结束日期
public static LocalDate[] getThisWeek(LocalDate date) {
LocalDate[] weeks = new LocalDate[2];
LocalDate localDate = date.minusWeeks(0);
weeks[0] = localDate.with(DayOfWeek.MONDAY);
weeks[1] = localDate.with(DayOfWeek.SUNDAY);
return weeks;
* Date转LocalDate
* @param date
public static LocalDate date2LocalDate(Date date) {
if(null == date) {
return null;
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();