【问题标题】:Not able to compare time properly in php无法在php中正确比较时间
【发布时间】:2017-05-18 07:23:10
【问题描述】:

这是我用来比较 codeigniter 中时间的查询

$present_time = date("h:i a");
$this->db->where('status!=', 'closed ');
$this->db->where('one_hour_break!=', ' ');
$this->db->where("(one_hour_break ='$present_time' or one_hour_break < '$present_time')");
$query = $this->db->get('student');
$final_time = $query->result();

if($final_time)
    {
        echo "true";
    }
else
    {
        echo "false";
    }

如果时间在 1 点到 12 点之间,它会正确比较时间,但是在给定时间是 12pm 到 1pm 和 12am 到 1pm 之间,它没有正确比较时间

例如:

因此,如果当前时间:下午 12:30 和 one_hour_break:下午 1:30,则休息时间应大于当前时间,结果应为 false,但结果为 true。中午 12 点到下午 1 点之间的时间也是如此

谁能告诉我如何处理这个问题

【问题讨论】:

  • 也许你可以用“H”代替?所以是24小时制?
  • @Andreas 我也遇到了 b/w 24 和 1 的问题
  • 您需要在时间戳中进行时间转换,然后您可以比较时间。
  • 尽量在24小时内使用时间甲
  • “仅日期格式”?这意味着什么?有几种方法可以解决这个问题,最好的方法是返回并使用“Y-m-d H:i”或类似的东西将时间存储在数据库中。这样你就可以获得一个固定的时间戳,而不仅仅是一天中的时间,这在你开发的大部分时间都是无用的。

标签: php codeigniter time


【解决方案1】:

有几种方法可以解决这个问题,最好的方法是返回并使用“Y-m-d H:i”或类似的东西将时间存储在数据库中。
这样你就可以获得一个固定的时间戳,而不仅仅是一天中的时间,这在你开发的大多数时候都是无用的。

然后使用 strtotime() http://php.net/manual/en/function.strtotime.php 将字符串格式的日期转换为易于比较的数值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多