[英]How can I get last week date starting monday to sunday in javascript
我想要一个JavaScript函数,将start_date设置为上周的星期一,将end_date设置为上周的星期日。 例如,今天是03/09/2016,所以我要start_date = 02/29/2016 end_date = 03/06/2016
到目前为止,我已经把代码写成
function GetLastWeekDate(){
start_date = new Date();
start_date.setHours(0,0,0,0);
end_date = new Date();
var date=null;
var curr = date ? new Date(date) : new Date();
var first = curr.getDate() - curr.getDay("monday"),
last = first + 6;
start_date.setDate( first );
end_date. setDate( last );
}
(function() {
var original = Date.prototype.getDay;
var daysOfWeek = {
sunday: 0,
monday: 1,
tuesday: 2,
wednesday: 3,
thursday: 4,
friday: 5,
saturday: 6,
};
Date.prototype.getDay = function(weekBegins) {
weekBegins = (weekBegins || "sunday").toLowerCase();
return (original.apply(this) + 7 - daysOfWeek[weekBegins]) % 7;
};
})();
但它给我日期
03/07/2016 and 03/13/2016
如何解决这个问题以获得我想要的日期?
如果您要处理大量的日期,我只能强烈建议您使用moment.js库。
在这种情况下,日期为:
var startDate = moment().subtract(1, 'week').startOf('week');
var endDate = moment().subtract(1, 'week').endOf('week');
在这里您可以看到它的作用:
document.addEventListener('DOMContentLoaded', function() { document.getElementById("fromDate").textContent = moment().subtract(1, "week").startOf("week"); document.getElementById("toDate").textContent = moment().subtract(1, "week").endOf("week"); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/moment.min.js"></script> <html> <body> <p>From : <span id="fromDate"></span></p> <p>To : <span id="toDate"></span></p> </body> </html>
如果万一你只想要普通的js解决方案而没有任何外部库。 您可以试试看。
var dateNow = new Date();
var firstDayOfTheWeek = (dateNow.getDate() - dateNow.getDay()) + 1; // Remove + 1 if sunday is first day of the week.
var lastDayOfTheWeek = firstDayOfTheWeek + 6;
var firstDayOfLastWeek = new Date(dateNow.setDate(firstDayOfTheWeek - 7));
var lastDayOfLastWeek = new Date(dateNow.setDate(lastDayOfTheWeek - 7));
在上述解决方案中,firstDataOfLastWeek将在星期一的前一周,而lastDayOfLastWeek将在星期日的前一周。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.