PHP比较两个日期时间范围

新手83

我有两个日期范围的范围之一Start_Time,并End_Time从MySQL数据库和其他(用户)的范围来是从每天6 p.m5 a.m

现在,我尝试比较两个范围,并确保用户输入的-开始时间-(6p.m5 a.m第二天)不会落在“ Start_Time”和“ End_Time”之间,反之亦然。

数据库End_Time和用户的开始时间结束时间也是如此

代码:

  1. 创建用户日期的开始时间和结束时间的格式,但是每天时间都是固定的(6 p.m到第二天5 a.m
    用户范围(例如):
User Start Time:...... 2015-04-18 18:00:00
User End Time:2015-04-19 05:00:00

在数据库内:

MySQL DB Start Time:............ 2015-04-19 00:50:00
MySQL DB End Time:....2015-04-19 23:50:00

对于用户日期,时间范围始终在6p.m之间5p.m只有我们必须修改日期。

要达到用户要求的范围:

$sttime="18:00:00";
$ettime="05:00:00";
$teststartdate = date("Y-m-d");

$teststartdatetime=$teststartdate." ".$sttime;

#Calculate Endtime
#$testendtime=date('Y-m-d', strtotime($teststartdate . ' + 1 day'))." ".$ettime; 

为了进行比较,我编写了一个函数,但是看起来并不总是这样:

function dateIsBetween($dbfrom1,$dbto1,$user_st,$user_et) {

    $from = strtotime($dbfrom1);
    $to = strtotime($dbto1);  
    $st = strtotime($user_st);
    $et = strtotime($user_et);
    echo "DB FROM:............ ".$from.PHP_EOL."DB TO:....".$to.PHP_EOL."ST Start Time:...... ".$st.PHP_EOL."ST End Time:".$et;
      if (('$from' >= '$st' && '$from' < '$et') || ('$to' >= '$st' && '$to' <= '$et') || ('$from' <= '$st' && '$to' > '$et')) {      
        return 1;
      }else {return 0;}

如果用户日期(开始日期或结束日期)在数据库范围内,则需要打印“忙”。
此逻辑有时会起作用,有时会不起作用。

迈克尔·斯科拉

我可能对此进行了简单化,但是在我的3个测试场景中(尽管可能有限),它们仍在工作。

var_dump(dateIsBetween('2015-04-01 14:00:00', '2015-04-02 05:00:00', '2015-04-01 08:00:00', '2015-04-01 10:00:00'));
var_dump(dateIsBetween('2015-04-01 14:00:00', '2015-04-02 05:00:00', '2015-04-01 18:00:00', '2015-04-01 19:00:00'));
var_dump(dateIsBetween('2015-04-01 14:00:00', '2015-04-02 05:00:00', '2015-04-01 08:00:00', '2015-04-02 05:00:00'));

function dateIsBetween($dbfrom1,$dbto1,$user_st,$user_et) {

    if(((strtotime($user_st) >= strtotime($dbfrom1)) and (strtotime($user_st) <= strtotime($dbto1))) or (strtotime($user_et) >= strtotime($dbfrom1)) and (strtotime($user_et) <= strtotime($dbto1))) {

        return true;

    } else {

        return false;   

    }

}

编辑

我相信在重新阅读后,我对方法有一些反感。

试试这个:

var_dump(dateIsBetween('2015-04-01 08:00:00', '2015-04-01 10:00:00', '2015-04-01 14:00:00', '2015-04-02 05:00:00'));
var_dump(dateIsBetween('2015-04-01 18:00:00', '2015-04-01 19:00:00', '2015-04-01 14:00:00', '2015-04-02 05:00:00'));
var_dump(dateIsBetween('2015-04-01 08:00:00', '2015-04-02 05:00:00', '2015-04-01 14:00:00', '2015-04-02 05:00:00'));

function dateIsBetween($dbfrom1,$dbto1,$user_st,$user_et) {


    if(((strtotime($dbfrom1) >= strtotime($user_st)) and (strtotime($dbfrom1) <= strtotime($user_et))) or (strtotime($dbto1) >= strtotime($user_st)) and (strtotime($dbto1) <= strtotime($user_et))) {

        return true;

    } else {

        return false;   

    }

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

比较两个日期范围

来自分类Dev

Datetimepicker比较两个日期/时间

来自分类Dev

PHP:循环遍历json,根据两个键值将当前时间与时间范围进行比较

来自分类Dev

PHP的两个日期之间的时间是

来自分类Dev

WooCommerce预订-比较两个时间戳与自定义日期格式的PHP

来自分类Dev

C#无法正确比较两个日期时间

来自分类Dev

如何在JavaScript中比较两个日期时间?

来自分类Dev

如何比较两个日期时间并查找分钟

来自分类Dev

如何比较两个日期时间列 Oracle

来自分类Dev

Python计算两个日期之间的时间范围长度

来自分类Dev

正确计算两个日期范围之间的时间

来自分类Dev

(Mysql) 按日期时间范围合并两个表

来自分类Dev

日期验证以比较php中的两个日期

来自分类Dev

PHP 比较两个日期的到期日期

来自分类Dev

两个日期比较

来自分类Dev

PHP - 计算两个日期时间之间的时间渲染

来自分类Dev

PHP来比较两个时间流逝

来自分类Dev

使用php比较两个日期,如果

来自分类Dev

无法使用PHP比较两个日期

来自分类Dev

php比较两个日期,仅月份和年份

来自分类Dev

PHP比较两个日期之间的差异

来自分类Dev

比较基于日期时间的PHP-MySQL中的两个查询,并将所选数据插入表中

来自分类Dev

从Mysql两个表中仅提取不包括时间的日期部分并在php中进行比较

来自分类Dev

Java如何比较当前时间是否在两个时间范围内

来自分类Dev

使用两个日期比较而不是日期范围查询会在MongoDB中产生不同的结果

来自分类Dev

php中两个日期时间之间的时差

来自分类Dev

PHP的结果不同的时区两个日期时间

来自分类Dev

如何获取两个Java日期之间的天数,同时比较日期和时间

来自分类Dev

从字符串转换日期和/或时间时,两个日期比较使转换失败

Related 相关文章

  1. 1

    比较两个日期范围

  2. 2

    Datetimepicker比较两个日期/时间

  3. 3

    PHP:循环遍历json,根据两个键值将当前时间与时间范围进行比较

  4. 4

    PHP的两个日期之间的时间是

  5. 5

    WooCommerce预订-比较两个时间戳与自定义日期格式的PHP

  6. 6

    C#无法正确比较两个日期时间

  7. 7

    如何在JavaScript中比较两个日期时间?

  8. 8

    如何比较两个日期时间并查找分钟

  9. 9

    如何比较两个日期时间列 Oracle

  10. 10

    Python计算两个日期之间的时间范围长度

  11. 11

    正确计算两个日期范围之间的时间

  12. 12

    (Mysql) 按日期时间范围合并两个表

  13. 13

    日期验证以比较php中的两个日期

  14. 14

    PHP 比较两个日期的到期日期

  15. 15

    两个日期比较

  16. 16

    PHP - 计算两个日期时间之间的时间渲染

  17. 17

    PHP来比较两个时间流逝

  18. 18

    使用php比较两个日期,如果

  19. 19

    无法使用PHP比较两个日期

  20. 20

    php比较两个日期,仅月份和年份

  21. 21

    PHP比较两个日期之间的差异

  22. 22

    比较基于日期时间的PHP-MySQL中的两个查询,并将所选数据插入表中

  23. 23

    从Mysql两个表中仅提取不包括时间的日期部分并在php中进行比较

  24. 24

    Java如何比较当前时间是否在两个时间范围内

  25. 25

    使用两个日期比较而不是日期范围查询会在MongoDB中产生不同的结果

  26. 26

    php中两个日期时间之间的时差

  27. 27

    PHP的结果不同的时区两个日期时间

  28. 28

    如何获取两个Java日期之间的天数,同时比较日期和时间

  29. 29

    从字符串转换日期和/或时间时,两个日期比较使转换失败

热门标签

归档