Carbon PHP从开放/关闭时间获取时间戳

时间:2018-03-26 23:44:11

标签: php laravel php-carbon

我在我的数据库中存储时间如下

public class Main {
   public static void main(String[] args) {
      callMethodOne(
         new Interface() {
            @Override
            public String methodOne(String input) {
               return ("override: " + input);
            }
         }
      );
   }

   private static void callMethodOne(Interface instance) {
      System.out.println(instance.methodOne("test"));
   }
}

8 pm to 2 am

当我尝试用Carbon格式化这些时,我得到一个关于没有任何分钟的错误,我需要做的就是将Carbon :: now()与引用的打开/关闭时间进行比较

这是我的代码

8pm - 2am
8 pm - 2 am

我得到的确切错误是无法找到两位数分钟数据缺失

但我该如何纠正呢?

2 个答案:

答案 0 :(得分:0)

首先,我建议不要将原始数据存储为2 pm等。从长远来看,实际的日期时间对您有所帮助。

如果必须,请在您的号码后面加:00并在使用Carbon解析时使用它。

答案 1 :(得分:0)

方法Carbon::createFromTime希望24小时格式化$hour,尝试使用这个简单的代码段

$stringHours = '8 pm to 2 am';

$hours = array_map(function($hour) {
        $open = substr($hour, -2) === 'pm'
            ? intval($hour) + 12
            : intval($hour);

        return $open < 24 ? $open : 0;
    }, explode(' to ', $stringHours)
);

Carbon::createFromTime($hours[0], 0, 0, $tz);

//more code...