首页 > 解决方案 > moment.js 给出了错误的日期

问题描述

我正在使用 moment.js 来转换日期。但由于某种原因,它给了我错误的日期。我希望得到 26-08-2019 的日期,但我得到的日期是 02-09-2019。我也使用语言环境 NL。当我检查日期为 28-06-2019 的周数时刻时,它将返回第 35 周。

moment.locale('nl');
var date = moment().year('2019').week('35').day('1').format("DD-MM-YYYY");
console.log("date 1:" + date); // => date 1: 02-09-2019
console.log("week: " + moment("2019-08-26").week()); //=> week: 35
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js" integrity="sha256-AdQN98MVZs44Eq2yTwtoKufhnU+uZ7v2kXnD5vqzZVo=" crossorigin="anonymous"></script>

所以我不明白为什么它给了我第 36 周的日期。我也试过 isoWeek

我希望有人可以帮助解决这个问题。

标签: javascriptmomentjs

解决方案


您需要通过一周的开始日期才能获得所需的日期:

$date=moment().year('2019').week('35').day('Monday').format("DD-MM-YYYY");
console.log("date 1:"+$date);
console.log("week: "+moment("2019-08-26").week());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>


推荐阅读