我非常困惑或太累......
var year = 2016;
var week = 40;
var startDate = moment().year(year).week(week).day(1).startOf('day').toDate();
var endDate = moment(startDate).add(6, 'days').endOf('day').toDate();
console.log(new Date()); // Sun Jan 01 2017 00:28:44 GMT+0200 (FLE Standard Time)
console.log(year, week, startDate, endDate); // 2016 40 Mon Sep 28 2015 00:00:00 GMT+0300 (FLE Daylight Time) Sun Oct 04 2015 23:59:59 GMT+0300 (FLE Daylight Time) <-- look the year, 2015!!
我想要的只是从2016年第40周开始的日期范围,但它从2015年开始给出那一周。为什么?
编辑:要重现此问题,您需要MomentJS的芬兰语区域设置。
此外,如果您拨打moment()。year()。week()或moment()。week()。year()
,则会有所不同。<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>t</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/locale/fi.js"></script>
</head>
<body>
<script>
var year = 2016;
var week = 40;
document.write(moment().format());
document.write("<br>");
var startDate = moment().year(year).week(week).day(1).startOf('day').toDate();
var endDate = moment(startDate).add(6, 'days').endOf('day').toDate();
document.write(new Date());
document.write("<br>");
document.write('startDate = '+startDate);
document.write("<br>");
document.write('endDate = '+endDate);
</script>
</body>
</html>
P.S。它在2016年的消失中运作正常,但自2017年以来它给出了奇怪的2015年 P.P.S.新年快乐 ! :)