V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
basstk
V2EX  ›  PHP

问个问题,忽略日期,就用时间段对比,如何判断当前时间段是否在 08:00:00 跟 08:30:00 的范围内?

  •  
  •   basstk · 2018-12-01 02:12:13 +08:00 · 4609 次点击
    这是一个创建于 2183 天前的主题,其中的信息可能已经有所发展或是发生改变。

    数据库 2 个字段存储了 2 个时间段: t1=08:00:00 跟 t2=08:30:00

    忽略日期,就用时间段对比,如:如何判断当前时间段 09:30:00 是否在 08:00:00 跟 08:30:00 的范围内?

    15 条回复    2018-12-02 08:11:16 +08:00
    Midnight
        1
    Midnight  
       2018-12-01 02:13:56 +08:00
    大于小于啊
    ysc3839
        2
    ysc3839  
       2018-12-01 02:22:49 +08:00 via Android
    比较当天的秒数。
    Jisxu
        3
    Jisxu  
       2018-12-01 02:31:11 +08:00 via Android   ❤️ 1
    java 的话,去看看 LocalTime 这个类,parse,然后直接 compareTo 完事
    chinvo
        4
    chinvo  
       2018-12-01 02:52:54 +08:00 via iPhone
    推荐一个库,叫 Carbon,PHP 的日期时间增强
    Kbyte
        5
    Kbyte  
       2018-12-01 08:13:52 +08:00
    一减不就完了
    947211232
        6
    947211232  
       2018-12-01 08:14:15 +08:00
    strtotime
    zxcvsh
        7
    zxcvsh  
       2018-12-01 09:07:48 +08:00 via iPhone
    如果是取出来对比好像方法挺多的
    gowa2017
        8
    gowa2017  
       2018-12-01 09:08:49 +08:00 via iPhone
    sql hour(date) =8 and minute(date) <30
    jugelizi
        9
    jugelizi  
       2018-12-01 09:09:27 +08:00
    不就是 8000 和 8300 对比吗
    lhx2008
        10
    lhx2008  
       2018-12-01 09:20:43 +08:00 via Android
    楼上正解,转成四位的就好了
    dante3imin
        11
    dante3imin  
       2018-12-01 09:28:05 +08:00
    time() > mktime(8, 0, 0) && time() < mktime(8, 30, 0)
    xpresslink
        12
    xpresslink  
       2018-12-01 10:30:07 +08:00
    把 9:30 转成 用字符串 "8000"/"8300" 或整数 8000/8300 直接比较就可以了。
    realpg
        13
    realpg  
       2018-12-01 16:11:49 +08:00
    PHP 的 STRTOTIME 比较强悍
    honeycomb
        14
    honeycomb  
       2018-12-01 17:16:46 +08:00 via Android
    不想写 SQL 的话,导出成 localtime 类以后可以直接比较。
    qinrui
        15
    qinrui  
       2018-12-02 08:11:16 +08:00 via iPhone
    case when substr(time_str,12,8)>“ 08:00:00 ” and
    substr(time_str,12,8)<“ 08:30:00 ” then 1 else 0 end
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5713 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:45 · PVG 09:45 · LAX 17:45 · JFK 20:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.