gpt4 book ai didi

javascript - 从一系列日期范围计算实际天数

转载 作者:可可西里 更新时间:2023-11-01 07:39:36 26 4
gpt4 key购买 nike

我需要计算多个日期范围之间的实际天数。

例如:

  • 2014-01-01 to 2014-01-04 is 4 days
  • 2014-01-05 to 2014-01-06 is 2 days

同时

  • 2014-02-01 to 2014-02-03 3 days with
  • 2014-02-03 to 2014-02-05 3 days

一共是5天

一个更复杂的问题是,在一个月内,日期范围和/或重叠日期范围之间会有一些差距需要考虑

任何想法伙计们。使用 mysql 进行计算的能力会很棒。

也许我应该说计算天数而不是计算。我可以使用 mysql 或 javascript 获取两个日期范围之间的天数,如下所述,我认为我的轮子与重叠的日期范围一起脱落,其中一个范围在另一个范围结束之前开始。

最佳答案

按照建议HERE :您可以在 Javascript 中使用 Date 对象:

var prevTime = new Date(2011,1,1,0,0);  // Feb 1, 2011
var thisTime = new Date(); // now
var diff = thisTime.getTime() - prevTime.getTime(); // now - Feb 1
alert(diff / (1000*60*60*24)); // positive number of days

编辑:我想念你标记的 JavaScript,但要求 MySQL

按照建议HERE :如果您对列使用 DATE 或 DATETIME 格式,则可以使用:

SELECT DATEDIFF(STR_TO_DATE('2014-01-01', '%Y-%m-%d'),STR_TO_DATE('2014-01-04', '%Y-%m-%d')) AS DAYS

希望对你有帮助

EDIT2 这是一个很好的方法,可以用一些逻辑在一条语句中做到这一点:

SELECT (CASE 
WHEN Start_date1 <= End_date2 THEN
1+DATEDIFF(End_date2, Start_date1)
WHEN Start_date2 <= End_date1 THEN
1+DATEDIFF(End_date1, Start_date2)
ELSE 0
END) AS DAYS
FROM TABLE

逻辑是:Date1 在 Date2 结束之前开始,Start_date1 >= End_date2

Date2 在 Date1 结束之前开始,Start_date2 >= End_date1

如果两者都不成立,则它们不会重叠。

关于javascript - 从一系列日期范围计算实际天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25700499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com