我正在使用一个 javascript 日历,它允许重新调整事件的大小,即增加/减少事件持续时间。出于某种原因,事件给了我结束日期加上 30 分钟。因此,我需要从给出的结果中减去 30 分钟。目前,事件调整大小以 30 分钟为步长进行。
我对 Javascript 不是很熟悉,考虑到 end
显示 W
,我很难理解如何实际获取信息,但最后我能够使用 el.end.format("YYYY-MM-DD H:mm:SS")
。查看最终对象:
使用 el.end.format("YYYY-MM-DD H:mm:SS")
我需要减去 30 分钟。我已经能够使用:
var datePart1 = el.end.format("YYYY-MM-DD H:");
var datePart2 = el.end.format(":SS");
var trueEnd = el.end.format("mm") == 30 ? datePart1 + "00" + datePart2 : datePart1 + "30" + datePart2;
虽然这不是一个干净的方法,但是如果我更改了日历以允许 15 分钟的步骤来调整大小,则此解决方案将无法在不进行修改的情况下工作。谁能告诉我如何使用 el.end.format("YYYY-MM-DD H:mm:SS")
并简单地删除 30 分钟,或者是否有更简洁的方法来做到这一点使用格式将不胜感激。另外,如果有人能告诉我为什么 W
显示在对象的 end
参数中,以及如何最好地处理这个问题,那将对 future 很有帮助。
如果我可以提供任何其他信息,请告诉我。
重要
我最初的问题试图错误地解决这个问题。尽管我可以使用 Saransh 提供的解决方案解决问题,但工作代码示例:
var blah = new Date(el.end.format("YYYY-MM-DD H:mm:SS"));
blah.setMinutes(blah.getMinutes()-30);
这不是一个完整的解决方案。调整事件大小时,事件上显示的时间也错了半小时,因此我必须在提交更改时以及在调整事件大小时更改事件时即时将库修改为减去半小时事件本身显示的时间。因此,在处理调整大小时,几乎可以更改任何时间计算实例。
我将日历放在单独的页面上,并包含了最低限度的内容。这样做,调整大小按预期执行。然后我转到原始页面并一个一个地删除 js/css 文件。最终我看到 Bootstrap css 文件通过向单元格大小添加几个像素导致问题,因此在计算使用单元格高度的时间时导致问题。导致问题的行是
* {box-sizing: border-box;}
因此,在日历的 PHP View 文件的最顶部,我简单地添加了:
<style>
* {box-sizing: content-box;}
</style>
单元格高度现在符合预期,调整大小时间计算在所有方面都运行良好。我之前遇到过这个问题,所以如果您使用日历并将其包含在元素中,请务必检查 CSS 文件以查看它们是否导致冲突。希望这对将来的人有帮助,因为我花了更多的时间试图找出一个 hack,而不是用一行 CSS 实际解决整个问题。
最佳答案
date = new Date()
date.setMinutes(date.getMinutes()-30)
会做你想做的。
关于Javascript 日期减去 30 分钟/完整日历调整大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33693221/