MySQL PHP每小时入住率

时间:2017-02-28 19:12:19

标签: php mysql

我在一个特定对象的unix时间戳中有一个time_fromtime_to的表。时间是占用率或使用数字,因此时间可以从下午1点到下午3点。

我想做的是制作一张图表(在JS中准备就绪),类似于Google显示商店营业时间"最喜欢的时间"在Google地图中,即。你可以看到哪些时候有更多/更少的访客。这应该反映自数据库启动以来特定对象名称的所有条目。

我不确定从哪里开始,因为我不认为平均是这样做的正确方法。我希望如果一个参赛作品的占用时间是13:30到15:30,则每个小时13,14,15都会得到+1。如果下一个条目是12:00到13:40,12和13获得+1。

在这个简短的例子中,图表显示12,14,15,1个单位,13个2单位。

但是又出现了一个问题。我如何决定何时将一小时计为+1?如果时间是15:05到16:05,那么不给16 a +1是有道理的。这需要在一小时内对某些分钟进行某种计算,以确定该小时是否被占用"。

如何从数据库中查询以获取正确的单位?

1 个答案:

答案 0 :(得分:0)

我猜你正在处理表格行

  

person x 在商店内从 2017-02-28 12:25 2017-02-28 14:10

和类似的信息。您决定如何评分您的工作时间。以下是一些备选方案,您可以从中选择一个。

  1. 如果每个样本中的时间间隔覆盖小时的顶部,那么您给该小时+1。对于我的示例行,13:00和14:00的小时数将为+1。这可能是最容易实现的。不计算在13:10到达并在13:20离开的人。

  2. 如果每个样本中的时间间隔与从小时前半小时到半小时后的时间间隔完全相交,则得到+1。这对每个人都很重要。

  3. 将UNIX时间戳转换为日期/时间戳很简单且相当便宜(尽管有相反的评论):

    SELECT FROM_UNIXTIME(1488310427)
    

    接近我写这篇文章时的时间。

    SELECT HOUR(FROM_UNIXTIME(1488310427));
    

    获取该时间戳发生的那一天的小时。这些操作符合MySQL连接的当前时区设置。例如,如果您想要大西洋标准时间中的一小时,请执行此操作。

    SET time_zone='America/Halifax';
    SELECT HOUR(FROM_UNIXTIME(1488310427));
    
相关问题