如何检查碳日期对象是否在一天的开始?

时间:2017-08-22 19:05:09

标签: php php-carbon

我使用Carbon来操作从MySQL数据库中检索到的日期。我有以下日期:

  • 2017-07-19 00:00:00
  • 2017-06-26 15:27:57

如您所见,第一个是一天的开始。当显示这样的日期时,我想省略时间部分。我知道我可以为每个使用不同的格式。例如:

  • F d Y没有时间的日期。
  • F d Y g:ia了解有时间的日期。

我无法完成的是一种检查日期是否有时间部分来应用一种格式或另一种格式的简单方法。我必须使用个人吸气剂检查小时,分钟和秒吗?

3 个答案:

答案 0 :(得分:11)

如果你只是想检查它是否是当天的开始,那么使用Carbon的startOfDay() modifiercomparison检查相当容易:

$date = Carbon::now(); // or whatever you're using to set it
$start = $date->copy()->startOfDay();
if($date->eq($start)) {
    // do your formatting here
}

答案 1 :(得分:1)

您可以使用Carbon对象的时间戳减去“today”的时间戳(yyyy-mm-dd 0000:00:00),它将为您提供从00:00到该日期的秒数:< / p>

$secondsPassed = $carbonObject->timestamp - $carbonObject->copy()->startOfDay()->timestamp;
if ($secondsPassed > 8 * 60 * 60) {
    // time is passed 08:00 am
} 

答案 2 :(得分:1)

与此同时,它甚至更容易。像这样使用is....()方法(请参阅carbon comparison):

$date = Carbon::now();
if($date->isStartOfDay()) {     // check if hour is 00:00:00
    // whatever
}