moment.js扩展库moment-range.js时间范围处理工具

简介: moment.js扩展库moment-range.js时间范围处理工具

moment.js扩展库moment-range.js


Fancy date ranges for Moment.js


https://github.com/rotaready/moment-range


const moment = require('moment');
const MomentRange = require('moment-range');
MomentRange.extendMoment(moment);
const range = moment.range('2014-11-01', '2015-02-01');
// 月份
let months = Array.from(range.by('month')).map(
    month => month.format('YYYY-MM-DD')
);
console.log(months);
// [ '2014-11-01', '2014-12-01', '2015-01-01', '2015-02-01' ]
// 年份
const years = Array.from(range.by('year')).map(
    month => month.year()
);
console.log(years);
// [ 2014 ]
// 星期
const weeks = Array.from(range.by('week')).map(
    month => [
        month.startOf('week').format('YYYY-MM-DD'),
        month.endOf('week').format('YYYY-MM-DD'),
    ]
);
console.log(weeks);
// [ [ '2014-10-26', '2014-11-01' ],
//   [ '2014-11-02', '2014-11-08' ],
//   [ '2014-11-09', '2014-11-15' ],
//   [ '2014-11-16', '2014-11-22' ],
//   [ '2014-11-23', '2014-11-29' ],
//   [ '2014-11-30', '2014-12-06' ],
//   [ '2014-12-07', '2014-12-13' ],
//   [ '2014-12-14', '2014-12-20' ],
//   [ '2014-12-21', '2014-12-27' ],
//   [ '2014-12-28', '2015-01-03' ],
//   [ '2015-01-04', '2015-01-10' ],
//   [ '2015-01-11', '2015-01-17' ],
//   [ '2015-01-18', '2015-01-24' ],
//   [ '2015-01-25', '2015-01-31' ] 
// ]
// 季度
const quarters = Array.from(range.by('quarter')).map(
    month => month.format('[Q]Q')
);
console.log(quarters);
//[ 'Q4', 'Q1' ]
相关文章
|
7月前
|
数据采集 消息中间件 人工智能
AI Agent:构建以数据为中心的智能体
在过去一年里大模型领域主要有两大领域的热点,一个是 LLM,几乎每月速度革新,大家关心的是效果和成本。另一个是 AI Agent,大家尝试解决各个领域应用问题,大家关心的是场景和竞争力。下面我们重点分享一下 AI Agent 的趋势和实践。
1001 14
|
10月前
|
资源调度 前端开发 开发者
React 日期选择器 Date Picker
本文介绍了如何在 React 应用中使用 `react-datepicker` 日期选择器,涵盖基础安装、基本用法、自定义样式、限制可选日期、多日期选择等内容,并探讨了常见问题及解决方案,帮助开发者在实际项目中灵活应用日期选择器。
504 5
|
Linux KVM 虚拟化
在Linux中,如何进行虚拟机和容器的备份和迁移?
在Linux中,如何进行虚拟机和容器的备份和迁移?
|
安全 应用服务中间件 网络安全
部署SSL证书
部署SSL证书
900 5
|
11月前
|
JavaScript 前端开发 开发工具
web项目规范配置(husky、eslint、lint-staged、commit)
通过上述配置,可以确保在Web项目开发过程中自动进行代码质量检查和规范化提交。Husky、ESLint、lint-staged和Commitlint共同作用,使得每次提交代码之前都会自动检查代码风格和语法问题,防止不符合规范的代码进入代码库。这不仅提高了代码质量,还保证了团队协作中的一致性。希望这些配置指南能帮助你建立高效的开发流程。
542 5
|
12月前
|
缓存 前端开发 JavaScript
前端性能优化:打造流畅用户体验的秘籍
【10月更文挑战第20天】前端性能优化:打造流畅用户体验的秘籍
163 3
|
12月前
|
开发者
鸿蒙Flutter实战:07-混合开发
鸿蒙Flutter混合开发支持两种模式:1) 基于har包,便于主项目开发者无需关心Flutter细节,但不支持热重载;2) 基于源码依赖,利于代码维护与热重载,需配置Flutter环境。项目结构包括AppScope、flutter_module等目录,适用于不同开发需求。
420 3
|
JavaScript 前端开发
Hooks使用useReducer、createContext 、useContext实现模块数据共享,类似全局状态管理但不推荐做全局管理
使用React的`useReducer`和`createContext`钩子实现模块间的数据共享,类似于全局状态管理,但不推荐用作全局状态管理。`useReducer`适用于复杂的状态逻辑,而`createContext`和`useContext`则用于跨组件传递数据。
144 1
|
JavaScript Java 开发工具
Electron V8排查问题之接近堆内存限制的处理如何解决
Electron V8排查问题之接近堆内存限制的处理如何解决
704 1