<div class="form-group box" id="quarter"style="width:480px;margin: 20px 0;height:35px"> <label for="dtp_input3" class="col-xs-3 control-label" style="vertical-align:middle;line-height:35px">选择季度:</label> <div class="input-group col-xs-6" data-date="" data-date-format="hh:ii" data-link-field="dtp_input3" data-link-format="hh:ii" style="width:150px;vertical-align:middle" > <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span> <input class="form-control form_QT" size="16" type="text" value="" id="qt_1" style="width:250px" class='quarterDate'> </div> <input type="hidden" id="dtp_input3" value="" /><br/> </div>让上面这段代码在刚渲染后默认显示当前时间的上一个季度,当选择时间是还是显示自己选择的季度,不要用moment处理
时间: 2023-07-03 18:25:11 浏览: 87
可以使用JavaScript中的Date对象来处理季度的计算。首先获取当前时间,然后将月份减去1,再将月份除以3向下取整,得到当前所在季度的序号。最后将季度序号减1即可得到上一个季度的序号。
以下是实现代码:
```javascript
// 获取当前时间
var currentDate = new Date();
// 获取当前季度的序号
var currentQuarter = Math.floor((currentDate.getMonth() + 1) / 3);
// 获取上一个季度的序号
var previousQuarter = currentQuarter - 1;
// 如果当前是第一季度,则上一个季度是去年的第四季度
if (previousQuarter < 1) {
previousQuarter = 4;
}
// 将上一个季度的序号转换为字符串,补0成两位数
previousQuarter = ('0' + previousQuarter).slice(-2);
// 将上一个季度的起始日期设置为当前时间的上一个季度
var previousQuarterStartDate = new Date(currentDate.getFullYear(), (previousQuarter - 1) * 3, 1);
// 将上一个季度的结束日期设置为当前时间的本季度的第一天减1毫秒
var previousQuarterEndDate = new Date(currentDate.getFullYear(), (previousQuarter * 3), 1);
previousQuarterEndDate = new Date(previousQuarterEndDate.getTime() - 1);
// 将起始日期和结束日期格式化成字符串,以便填充到表单中
var previousQuarterStartDateString = previousQuarterStartDate.getFullYear() + '-' + ('0' + (previousQuarterStartDate.getMonth() + 1)).slice(-2) + '-' + ('0' + previousQuarterStartDate.getDate()).slice(-2);
var previousQuarterEndDateString = previousQuarterEndDate.getFullYear() + '-' + ('0' + (previousQuarterEndDate.getMonth() + 1)).slice(-2) + '-' + ('0' + previousQuarterEndDate.getDate()).slice(-2);
// 将起始日期和结束日期分别填充到表单的两个输入框中
document.getElementById('qt_1').value = previousQuarterStartDateString + ' - ' + previousQuarterEndDateString;
```
需要注意的是,这段代码中计算季度的方式是将月份除以3向下取整,这不是绝对准确的计算方法。例如,如果当前时间是3月1日,按照这种方法计算出来的季度是1,但3月份实际上是属于第一季度的。如果要完全准确地计算季度,可以考虑使用moment库或其他日期处理库。
阅读全文