简体   繁体   English

使用JavaScript的上周开始日期和结束日期未提供所需的结果

[英]Last week start date and end date using javascript not giving required result

I am using the following code, but it is returning last week's 我正在使用以下代码,但返回的是上周的

start date = 0-4/09/2018 and 开始日期= 0-4 / 09/2018

end date = 02/09/2018 结束日期= 02/09/2018

var curr = new Date;
var first = curr.getDate() - curr.getDay(); 
var last = first + 6; 
var startDate = new Date(curr.setDate(first));
var dd1 = startDate.getDate()-6;
var mm1 = startDate.getMonth() + 1;
if(dd1<10){
     dd1='0'+dd1
} 
if(mm1<10){
     mm1='0'+mm1
}
startDate = "" + dd1 + "/" + mm1 + "/" + startDate.getFullYear();
var endDate = new Date(curr.setDate(last));
var dd2 = endDate.getDate()-6;
var mm2 = endDate.getMonth() + 1;
if(dd2<10){
    dd2='0'+dd2
} 
if(mm2<10){
    mm2='0'+mm2
 }
endDate = "" + dd2 + "/" + mm2 + "/" + endDate.getFullYear();

You have to use the Date object and set its date to the value you like before getting the value. 在获取值之前,必须使用Date对象并将其日期设置为所需的值。 Your implementation is not valid because: 您的实现无效,因为:

  • Type casting missing 缺少类型转换
  • you cannot perform Date().getDate()-6, if the date is 1 you will calculate negative value, so no sense for date. 您无法执行Date()。getDate()-6,如果日期为1,则您将计算负值,因此对日期没有意义。

The correct form is that: 正确的形式是:

var curr,startDate,endDate, strStartDate,strEndDate;
curr = new Date();
curr.setDate(curr.getDate()+6)

startDate = new Date(curr.getTime());
startDate.setDate(startDate.getDate()-6)

strStartDate = startDate.getDate()+"/"+(startDate.getMonth()+1)+"/"+startDate.getFullYear();


endDate = new Date(startDate.getTime());
endDate.setDate(endDate.getDate()-6);

strEndDate = endDate.getDate()+"/"+(endDate.getMonth()+1)+"/"+endDate.getFullYear();

With a recommendation to use moment.js for date/time manipulation, I offer a solution based on it. 在建议使用moment.js进行日期/时间操作时,我提供了一个基于此的解决方案。

let startDate = moment().endOf("month").startOf("isoWeek");    // Also, check .startOf("week");
let endDate = moment().endOf("month").endOf("isoWeek");    // Also, check .endOf("week");
console.log(start);    // moment object
console.log(start.format('DD-MM-YYYY'));    // date string
console.log(end);    // moment object
console.log(end.format('DD-MM-YYYY'));    // date string

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用纯JavaScript获取下周的开始和结束日期 - Get next week's start and end date using pure javascript 如何获取开始日期和结束日期之间的日期,结果日期应采用数组格式,使用 javascript - How to get dates that are between Start date and End date and result date should be in an array format, using javascript 用JavaScript计算上周的开始日期(不是-7天前) - Calculate last week start date in JavaScript (not -7 days ago) Javascript“周末”日期计算? - Javascript “end of week” date calculations? 如何使用时刻迭代周数,周的开始/结束日期 - How to iterate week number, start/end date of weeks using moment 如何使用 Pure JavaScript 以 14 天的重复模式在开始日期和结束日期之间获取选定的工作日日期 - how to get selected week days dates between Start date and end date with 14 day recurrence pattern using Pure JavaScript 我正在处理 JavaScript 日期,我坚持将月份转换为周开始日期和结束日期 - I am Working on JavaScript Dates and i am stuck with converting month into week start date and end date 在本机反应中获取最近 6 个月的开始和结束日期 Javascript - get last 6 months start and end date Javascript in react native 如何使用Javascript在开始日期和结束日期之间中断数据 - How to break the data in between start date and end date using Javascript 获取本周的开始日期和结束日期(每周从星期一开始,以星期日结束) - Get start date and end date of current week (week start from monday and end with sunday )
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM