js 将一大段时间均分为很多个小时间段

本文介绍了如何使用JavaScript将一个大的时间段均分为多个小时间段,并根据这些小时间段在数据库中查询数据求均值。当日期选择和所需天数变化时,方法能够灵活调整。文章详细讲解了实现过程,包括确定后台需要的数据格式、计算时间间隔、处理日期加法以及处理闰年和大月小月问题。作者提供了一个完整的解决方案,并分享了修正后的代码链接。
摘要由CSDN通过智能技术生成

最近写项目,遇到一个将选中时间段平均分割为若干小段,然后根据小段时间在数据库查询求均值的问题,后台大哥犯懒,非说后台做不了,让我分好传给他ヾ(。 ̄□ ̄)ツ゜゜゜好气呦,但还要保持微笑,我就是这么懂礼貌的好孩子ー( ̄~ ̄)ξ

 

闲话不多说,来说实现过程

最开始只是分固定时间段,每天两小时一分,也就直接全写了,后来需求变了,日期选择输入,想要多少天就要多少天,时间大了要求取到的数据量还是那么多

我:不太好实现啊老板

boss:啥?别人都能做到,你咋就做不到?你这技术水平怕是有点低了把?

我:那我试试(MDZZ)

先确定后台需要什么数据格式,按照存入格式,先写个方法

1 function range(beginTime, endTime) {//存入格式
2     this.beginTime = beginTime;
3     this.endTime = endTime;
4 }

考虑到这是一个js文件,数据分割也是固定的等分,就写一个从外部获取参数的函数吧,TimeRange(startTime,endTime)函数用来供页面调用,只传入开始时间,结束时间,不写分多少组了,因为需要的数据总量一般都是固定的,分多少组也是固定的,哪里需要直接来js改就好了

1  function TimeRange(startTime, endTime) { //传入开始时间var startTime 传入结束时间var endTime 传入格式xxxx-xx-xx 年月日
2     var amount = 100; //定义分多少组
3     var startTimes = startTime + " 00:00:00"; //日期添加时分秒 开始日期
4     var endTimes = endTime + " 23:59:59"; //日期添加时分秒 结束日期
5

 

判断一波

1 if(endTimes <= startTimes) {
2         alert('结束日期必须大于开始日期!');
3         return -1;
4     }
5 
6     if(dataDiff > 15) {
7         alert('单次查询日期不超过两周,请重新选择!');
8         return -2;
9     }

既然平均分,那就得知道时间间隔,计算时间间隔,写个方法直接调用

 1 //计算天数差的函数,通用
 2 function DateDiff(sDate1, sDate2) { //sDate1和sDate2是2006-12-18格式  
 3     var aDate, oDate1, oDate2, iDays
 4     aDate = sDate1.split("-")
 5     oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) //转换为12-18-2006格式  
 6     aDate = sDate2.split("-")
 7     oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])
 8     iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数  
 9     return iDays
10 }

 

整理了一下逻辑,伪代码如下

 1     //计算时间段总时间,分割后每段时间间隔,单位(秒)
 2         var timeRange;//存储计算出的时间段
 3         var timeAll ; //总时间间隔
 4         var timeGap ; //分割后时间间隔
 5         var slidingTime = 0; //循环开始条件
 6         var momentTime_front; /
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您好,我可以为您提供一些有关JavaScript封装大装盘抽奖活动的建议:1. 首先,要准备好所需的JavaScript代码;2. 然后,定义奖项、获奖者和抽奖规则;3. 最后,使用JavaScript将抽奖活动的相关信息封装成一个大的装盘活动。 ### 回答2: JavaScript封装一个大转盘抽奖活动可以按照以下步骤进行: 1. 首先,我们需要构建一个转盘的HTML元素作为抽奖活动的展示界面。可以使用HTML5的canvas元素来实现一个圆形转盘,并在其中绘制各个奖品区域的扇形。 2. 在JavaScript中,我们可以定义一个Lottery类来管理抽奖活动。这个类可以包含转盘初始化、开始抽奖、停止转盘等方法。 3. 在转盘初始化方法中,我们可以定义奖品的数量、位置以及其他相关配置。同时,可以创建一个监听用户点击活动开始按钮的事件,并在点击事件中调用开始抽奖的方法。 4. 在开始抽奖的方法中,可以随机生成一个抽奖结果,然后通过计算旋转角度将转盘指针旋转到对应的奖品位置。 5. 为了增加抽奖的趣味性,可以在转盘旋转之前添加一段持续一定时间的动画,例如旋转数圈或者逐渐加速旋转。 6. 在停止转盘的方法中,可以计算抽奖结果对应的奖品角度,并通过动画逐渐减速转盘的旋转,直到旋转到目标奖品的角度停止。 7. 最后,可以在抽奖结果确定后,弹出一个提示框或者消息,显示中奖信息,并提供领取奖品的方式。 总体来说,封装一个大转盘抽奖活动主要需要实现转盘的绘制、抽奖逻辑的处理以及动画的控制。通过合理组织代码和事件监听,可以很好地实现一个用户友好的抽奖活动,并提供中奖信息的展示和奖品的领取方式。 ### 回答3: JavaScript是一种广泛应用于网页开发的编程语言,可以用来实现各种交互效果和功能。在这个问题中,我们可以使用JavaScript来封装一个大转盘抽奖活动。 首先,我们需要定义一个包含奖品信息的数组,每个奖品都有一个对应的概率。然后,我们可以使用Math.random()函数生成一个随机数,来决定转盘停在哪个奖品上。 接下来,我们可以创建一个函数,用来处理抽奖的逻辑。在这个函数中,我们可以先计算总的概率,然后用随机数乘以总概率,得到一个随机的概率值。接着,我们可以遍历奖品数组,累计每个奖品的概率值,一旦超过随机概率值,就返回对应的奖品信息。 在页面上,我们可以创建一个转盘的样式,包含多个扇形区域,每个区域对应一个奖品。然后,我们可以通过CSS来实现旋转效果,使转盘能够转动起来。 最后,我们为转盘绑定一个点击事件,当用户点击抽奖按钮时,调用抽奖函数并展示中奖结果。 综上所述,我们可以通过JavaScript封装一个大转盘抽奖活动,通过随机数生成、奖品概率计算和页面交互实现转盘的抽奖功能。这样的活动不仅可以增加用户参与度,还能为用户提供一种有趣的互动体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值