- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
抱歉,如果我的标题有点模糊。我很难将我的问题表述为标题。
我想做的是拥有一个动态创建 HTML 表格的表单(简单)。我的表单中的一个元素要求持续时间,例如下午 1 点到下午 2 点或下午 1.20 到下午 1.56(仍然很简单)。
现在,我想创建一个拖放元素,允许我向上或向下移动行。然而,当我这样做时,我希望时间能够做出相应的调整。
示例:我有三行。 ROW A 的时间范围设置为下午 2 点到下午 2.45 点。 ROW B 的时间范围设置为下午 2.45 到下午 3.15。 ROW C 的时间范围为下午 3.15 至 3.30。
如果我将 ROW C 移至 ROW A 上方,则 ROW C 的新时间应为下午 2 点到下午 2.15 点。然后,ROW A 的时间应调整为下午 2.15 至下午 3 点。 ROW B 现在应该是下午 3 点到 3.30。
因为用户可以指定任何时间范围,所以我认为的唯一逻辑是使用 2,400 数字系统列出所有 24 小时。例如。不是下午 1 点,而是 1,300。然后使用逻辑,我将 1,300 转换为 1:00PM 供用户查看。 501 将转换为 5:01AM。等等
当然有一种更简洁的方法可以做到这一点。有任何想法吗?谢谢!
最佳答案
我建议选择应用程序所需的最大精度(分钟或秒或更精确的精度)并使用这些精度值表示所有数据。您可以以您选择的任何精度为单位指定每行的持续时间。假设您不担心日期,您还可以以相同的精度表示开始时间,将前一天的午夜视为 0。因此,从您的示例来看,如果您的精度是分钟,则为下午 2 点。 = 14(24 小时制中的下午 2 点)* 60(每小时分钟数)= 840,您的总开始时间为 840。A 行的持续时间为 45(分钟),B 为 30,C 为 15 - 您的行看起来像一个 [45, 30, 15] 数组。
现在,要计算每行的开始和结束时间,只需执行常规算术:取前一行的结束时间(或在第一行的情况下为总体开始时间)并将该行的持续时间添加到其中获取结束时间。例如。 A 行从 840 开始,到 885 结束(840 开始 + 45 持续时间)。 B 行从 885 开始,到 915 结束。C 行从 915 开始,到 930 结束。
要将这些数字转换回 HH:MM,除以 60 并 chop 即可得到 HH(以 24 小时为单位;您必须对 a.m./p.m. 进行一些计算)并取模 60 得到分钟。例如。 C 行开始时间 915 计算为
Math.floor(915 / 60) // => 15 (that's 15 hours, so 3 p.m.)
915 % 60 // => 15 (15 minutes)
将它们放在一起,您将得到 24 小时制的 15:15,即下午 3:15,正如预期的那样,这也是您最初为 C 行编写的开始时间。
如果 C 行移动到前面,它现在从 840(总体开始时间)开始,到 855 结束(840 + 15 分钟持续时间),A 行从 855 开始,到 900 结束,B 行从 900 开始并在 930 处结束。
如果您确实需要担心日期,您可能需要考虑使用自纪元以来的时间来掌握您的总体起点,并从那里开始。
关于javascript - 设置范围时间,然后使用 JavaScript/jQuery 移动到另一个时间段时进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28642297/
如果我使用以下方法计算 java.time 中 2 个 LocalDate 之间的差异: Period p = Period.between(testDate, today); 然后我得到一个包含年、
我正在开发一个有多种不同费率的预订平台。这些费率由一天中的时间、星期几和一年中的一天决定。以下是所涉及的间隔类型的一些示例: 周一至周五,上午 9 点至下午 5 点 周六和周日,中午 12 点到早上
我有大量数据,包括开始时间、停止时间和值。开始和停止时间因行而异,以 5 分钟为增量。我正在尝试创建一个新的数据框,该数据框具有 5 分钟的间隔以及该间隔在行的开始和停止范围内的所有行的总和。 我有一
我有一个这样的表: --------------------------------------------- |Id | Step | StartedAt
我有一个网络应用程序,用户将在其中输入 2 个日期。一个 StartDate 和一个 EndDate。现在我想编写它,以便在选择 StartDate 和 EndDate 时确定有多少周,然后显示这些周
这看起来并不直截了当。 我正在尝试: @Override public int compare(Period o1, Period o2) { return o1.toStandardDays
我必须为团队发送 session 邀请,这是我的邮件 $ical = 'BEGIN:VCALENDAR PRODID:-//Microsoft Corporation//Outlook 11.0
我有这个 ISO 8601 时间段字符串: P0Y0M0DT3H5M0.000S 并且 PHP7.4 无法用它构造 DateInterval。 format('%h Hours %m Minutes
我想要获取包含一段时间(格式为 HH:MM:SS)的多个单元格的总和。在 LibreOffice Calc 4.0.3.3 中,我复制粘贴了 G14:G21 范围内的时间段,并将单元格格式设置为时间
我有一个表(MySQL),每n秒捕获一次样本。该表有很多列,但重要的是两列:时间戳(TIMESTAMP 类型)和计数(INT 类型)。 我想做的是获取一定时间范围内计数列的总和和平均值。例如,我每 2
我有一个表(MySQL),每n秒捕获一次样本。该表有很多列,但重要的是两列:时间戳(TIMESTAMP 类型)和计数(INT 类型)。 我想做的是获取一定时间范围内计数列的总和和平均值。例如,我每 2
我在一个项目上使用 joda-time (1.6.2),我正在做的其中一件事就是计算预测时间和实际时间之间的差异。这种差异有时是积极的,有时是消极的。虽然适当的方法可能是使用 Duration 而不是
我有一个表 (MySQL),它每 n 秒捕获一次样本。该表有很多列,但最重要的是两列:一个时间戳(TIMESTAMP 类型)和一个计数(INT 类型)。 我想做的是获取计数列在一段时间内的总和和平均值
我想让我的折线图显示过去 3 个月的数据。 GDS 有一个“最后一个季度”的日期范围,但这显示的是 Q1、Q2、Q3 或 Q4。我需要的是过去3个整月(不算当月)的数据。我尝试创建一个计算字段,但事实
我想让我的折线图显示过去 3 个月的数据。 GDS 有一个“最后一个季度”的日期范围,但这显示的是 Q1、Q2、Q3 或 Q4。我需要的是过去3个整月(不算当月)的数据。我尝试创建一个计算字段,但事实
我是一名优秀的程序员,十分优秀!