solaro
V2EX  ›  问与答

为什么 date('H:i')会小于'8:00'?

  •  
  •   solaro · Apr 18, 2018 · 2426 views
    This topic created in 3126 days ago, the information mentioned may be changed or developed.

    代码如下:

    echo $a = date('H:i');
    
    echo "-----------------";
    
    
    echo $b = '8:00';
    echo "-----------------";
    
    $c = $a < $b;
    var_dump($c);
    
    
    die;
    
    
    …………………………
    输出结果:
    
    18:30-----------------8:00-----------------bool(true)
    

    一个时间选择器引发的坑,店铺的可以设置开店的时间,通常是 8 点~22 点,然后后台的 24h 时间选择器( timepicker ),默认时间是不带 0 的,就是 8 点 php 输出是 08,但是时间选择器输出是 8,然后代码里我是这么写的:

    if (date('H:i') < $store->open_time) {
       echo '店铺尚未营业';
    }
    

    疑问:为什么'08:00' 会小于 '8:00' ???

    9 replies  •  2018-04-19 09:21:09 +08:00
    lwbjing
    lwbjing
    Apr 18, 2018
    1
    0 难道不小于 8 吗?
    cxbig
    cxbig
    Apr 18, 2018❤️1
    2
    比对日期时间用相关函数先处理,不要把字符串直接放到代数逻辑里操作。
    moult
    moult
    Apr 18, 2018❤️2
    3
    solaro
    solaro
    OP
    Apr 18, 2018
    4
    阿西吧,谢谢

    顺便求大神改一下这个,有大神有空可以往里加一个参数,当 24 小时制的时候显示 ,小时小于 10 前面可以自动补 0

    https://github.com/jdewit/bootstrap-timepicker/releases
    msg7086
    msg7086
    Apr 18, 2018
    5
    比较时间不比较时间却比较字符?这操作谁教你的……
    icebay
    icebay
    Apr 19, 2018
    6
    请转换成时间戳进行比较
    wd
    wd
    Apr 19, 2018 via iPhone
    7
    python 门槛低
    wd
    wd
    Apr 19, 2018 via iPhone
    8
    @wd 应该是程序员门槛低…
    2010
    2010
    Apr 19, 2018 via Android
    9
    时间戳
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4229 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 02:02 · PVG 10:02 · LAX 18:02 · JFK 21:02
    ♥ Do have faith in what you're doing.