javascript - 半年日期格式
问题描述
我想获得 ex 的半年日期格式:如果我的日期为 2020-01-01,则日期格式必须为 H1,对于 2020-08-01,日期格式必须为 H2 我已经实现了 ex 的季度日期格式: 2020-01-01 -> Q1 和 2020-04-01 -> Q2 以下列方式
const baseDateM = moment(`${year}-${month}-01`, 'YYYY-MMM-DD');
var periodAsDatesM = []; // using var
var dateFormat;
dateFormat = '[Q]Q';
periodAsDatesM = [
baseDateM,
baseDateM.clone().subtract(1, 'quarters'),
baseDateM.clone().subtract(2, 'quarters'),
baseDateM.clone().subtract(3, 'quarters'),
baseDateM.clone().add(1, 'quarters'),
baseDateM.clone().add(2, 'quarters'),
];
let yearsArray = _.uniq(periodAsDatesM.map(dtM => dtM.format('YYYY')));
const myPeriodArr = periodAsDatesM.map(dtM => dtM.format(dateFormat));
这里 myPeriodArr 包含 [Q1,Q2] 基于日期,但是现在当我遵循这个半年时 myPeriodArr 包含 [H0,H0] 而与日期无关。我尝试了以下半年。
dateFormat = '[H]H';
periodAsDatesM = [
baseDateM,
baseDateM.clone().subtract(6, 'months'),
baseDateM.clone().subtract(12, 'months'),
baseDateM.clone().subtract(18, 'months'),
baseDateM.clone().add(6, 'months'),
baseDateM.clone().add(12, 'months'),
];
let yearsArray = _.uniq(periodAsDatesM.map(dtM => dtM.format('YYYY')));
const myPeriodArr = periodAsDatesM.map(dtM => dtM.format(dateFormat));
我想在 H1 和 H2 中获取日期格式 例如:如果periodAsDatesM
包含:[2018-12-01,2019-06-01,2019-12-01,2020-06-01]
则myPeriodArr
应该是:[H2,H1,H2,H1]
解决方案
根据您的问题标签,您似乎正在使用 momentjs。在 momentjs GitHub 项目中有一个关于这个的问题。
改编自那里的评论:
const halfFormatted = `H${moment(new Date()).get('quarter') < 3 ? 1 : 2}`
console.log(halfFormatted)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
const halfFormat = `H${date.get('quarter') < 3) ? 1 : 2}`
推荐阅读
- java - 添加自定义注释和 MethodInterceptor 时,EnhancerByGuice 生成的类导致 Dropwizard 出错
- python - 使用自定义签名 defs 保存 TF2 keras 模型
- tsql - 试图比较同一列t-sql中的项目
- javascript - 如何使用全局 CSS 或 javascript 定位和更改元素样式?
- jquery - jquery 脚本不在 html 头中运行
- r - 在输入为县 shapefile 的传单的输出中添加州边界
- node.js - NodeJS 性能问题 - 单线程
- python - 识别具有相似地址的 ID
- javascript - 我什么时候应该在我的 react 应用程序中使用 Redux?
- protractor - 如何在量角器黄瓜中执行软断言