I’m using Carbon to manipulate dates I retrieved from my MySQL database. I have dates like the following:
2017-07-19 00:00:00
2017-06-26 15:27:57
As you can see, the first is the start of a day. When displaying dates like that, I would like to omit the time part. I know I can use a different format for each one. For example:
F d Y
for dates without time.F d Y g:ia
for dates with time.
What I couldn’t accomplish is a simple way to check if a date has a time part to apply one format or the other. Must I use individual getters to check the hour, minute and second?
Advertisement
Answer
If you just want to check if it’s the start of the day, then it’s fairly easy to check with Carbon’s startOfDay()
modifier and a comparison:
$date = Carbon::now(); // or whatever you're using to set it $start = $date->copy()->startOfDay(); if($date->eq($start)) { // do your formatting here }