首页 > 解决方案 > 使用时刻 js 将日期范围转换为周范围

问题描述

我有从和到的日期范围。我想将其转换为周日到周六范围内的周数。例如,我们有一个范围01-10-2014 - 31-10-2014

那么周数据应该是:

01-10-2014 - 04-10-2014
05-102014  - 11-10-2014
12-10-2014 - 18-10-2014 
19-10-2014 - 25-10-2014
26-10-2014 - 31-10-2014

如何使用 来实现这一点moment.js

标签: javascriptdatemomentjs

解决方案


Use .diff() method of moment.

const ranges = [
  { from: '01-10-2014', to: '04-10-2014' },
  { from: '05-10-2014', to: '11-10-2014' },
  { from: '12-10-2014', to: '18-10-2014' },
  { from: '19-10-2014', to: '25-10-2014' },
  { from: '26-10-2014', to: '31-10-2014' },
  { from: '01-10-2014', to: '31-10-2014' },
  { from: '09-10-2014', to: '31-10-2014' }
];

for (const range of ranges) {
  const dateFormat = 'DD-MM-YYYY';
  const diff = Math.abs(moment(range.from, dateFormat).diff(moment(range.to, dateFormat), 'weeks', true));
  console.log(diff.toFixed(2));
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

If you don't need a floating number like result, remove the true like thirt parameter of .diff() and the .toFixed(2).


推荐阅读