javascript的时间段选择

最近要在页面上加一个时间段的选择控件,便上网搜寻一番,但找到的答案大都没有考虑时间段跨年的情况,所以做了些修改

本周的开始和结束日期

//当前日期
var now = new Date();
//今天是一周的第几天
var nowDayForWeek = now.getDay() === 0 ? 7 : now.getDay();
var oneDay = 1000 * 60 * 60 * 24;
//本周开始日期
var weekStartDay = new Date(now.getTime() - oneDay * (nowDayForWeek - 1));
//本周结束日期(本周开始日期 + 6天)
var weekEndDay = new Date(now.getTime() - oneDay * (nowDayForWeek - 7));

上周的开始和结束日期

//上周开始日期(当前日期 - 7天 - 今天是一周的第几天)
var lastWeekStartDay = new Date(now.getTime() - oneDay * (nowDayForWeek + 6));
//上周结束日期(当前日期 - 今天是一周的第几天)
var weekEndDay = new Date(now.getTime() - oneDay * (nowDayForWeek - 7));

本月的开始和结束日期(不存在跨年)

var nowMonth = now.getMonth();
var nowYear = now.getFullYear();
function getMonthDays (year, month){
   var monthStartDay = new Date(year, month, 1);
   var monthEndDate = new Date(year, month + 1, 1);
   var days = (monthStartDay - monthEndDate) / oneDay;
   return days;
}
//本月开始日期
var monthStartDay = new Date(nowYear ,nowMonth ,1);
//本月结束日期
var monthEndDay = new Date(nowYear ,nowMonth ,getMonthDays(nowYear ,nowMonth));

上月的开始和结束日期(存在跨年的可能)

var lastMonth = (nowMonth - 1) === -1 ? 11 : (nowMonth -1);
var lastMonthYear = lastMonth === 11 ? (nowYear -1) : nowYear;
//上月开始日期
var lastMonthStartDay = new Date(lastMonthYear ,lastMonth ,1);
//上月结束日期
var lastMonthEndDay = new Date(lastMonthYear ,lastMonth ,getMonthDays(lastMonthYear ,lastMonth));

本季度的开始和结束日期(不存在跨年)

function getQuarterStartMonth (month){
   var quarterStartMonth = 0;
   if(month < 3){
      quarterStartMonth = 0;
   }
   if(2 < month && month < 6){
      quarterStartMonth = 3;
   }
   if(5 < month && month < 9){
      quarterStartMonth = 6;
   }
   if(8 < month){
      quarterStartMonth = 9;
   }
   return quarterStartMonth;
}
//本季度开始日期
var quarterStartday= new Date(nowYear ,getQuarterStartMonth(nowMonth),1);
//本季度结束日期
var quarterEndday= new Date(nowYear ,getQuarterStartMonth(nowMonth) + 2 ,getMonthDays(nowYear ,getQuarterStartMonth(nowMonth) + 2));

上季度的开始和结束日期(存在跨年)

var lastQuarterMonth = (getQuarterStartMonth(nowMonth) - 3) < 0 ? 9 : getQuarterStartMonth(nowMonth - 3);
var lastQuarterYear = lastQuarterMonth === 9 ? nowYear - 1 : nowYear;
//上季度开始日期
var lastQuarterStartday = new Date(lastQuarterYear ,lastQuarterMonth ,1);
//上季度结束日期
var lastQuarterEndday = new Date(lastQuarterYear ,lastQuarterMonth + 2 ,getMonthDays(lastQuarterYear ,lastQuarterMonth + 2);

转载于:https://www.cnblogs.com/keloo/p/3729570.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,我们可以使用几种方法来等待一段时间。以下是其中一些常用的方法: 1. setTimeout函数:setTimeout函数允许我们在指定的时间间隔后执行一段代码。它接受两个参数,第一个参数是要执行的代码,第二个参数是延迟的时间(以毫秒为单位)。 示例代码: ``` setTimeout(function() { // 在延迟后执行的代码 }, 2000); // 延迟2秒执行 ``` 2. setInterval函数:setInterval函数与setTimeout函数类似,但它会在指定的时间间隔内重复执行代码。它也接受两个参数,第一个参数是要执行的代码,第二个参数是时间间隔(以毫秒为单位)。 示例代码: ``` setInterval(function() { // 每隔一段时间执行的代码 }, 1000); // 每隔1秒执行一次 ``` 3. Promise和async/await:在ES6中引入了Promise和async/await来处理异步操作。我们可以使用Promise的`setTimeout`方法或async/await结合`setTimeout`来实现等待一段时间。 Promise示例代码: ``` function wait(timeout) { return new Promise(resolve => { setTimeout(resolve, timeout); }); } wait(2000).then(() => { // 在延迟后执行的代码 }); ``` async/await示例代码: ``` async function wait(timeout) { await new Promise(resolve => { setTimeout(resolve, timeout); }); } async function doSomething() { await wait(2000); // 在延迟后执行的代码 } doSomething(); ``` 这些是JavaScript中常用的等待一段时间的方法。你可以根据具体的需求选择适合的方法来实现等待功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值