javascript - 使用时刻 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
?
解决方案
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)
.
推荐阅读
- doxygen - 为什么我在 Doxygen 中收到“意外令牌”错误?
- python - to_datetime函数的Python多线程实现
- flutter - 从有状态小部件公开数据?扑
- .net - 正确清除打印机队列
- javascript - Switching backgroundcolor and fontcolor at the same time
- ubuntu - Ansible:本地 .ansible 文件夹是使用 root 作为其所有者创建的(权限错误)
- reporting-services - SSRS 查询设计器在 Visual Studio 2017 中更改
- c# - 如何在 datagridview 绑定时向 datagridview 添加行
- java - 检查字符是否为运算符
- ios - 垂直居中搜索控制器 iOS