Насколько я знаю, не существует функции, позволяющей автоматически делать это. Вы можете преобразовать строку
$dateString = '24/10/2019 21:00';
в метку времени или объект DateTime, а затем отформатировать ее условно на основе количества минут.
// Timestamp
$timestamp = strtotime(str_replace('/', '-', $dateString));
$newDateString = date('d/m/Y H' . ($timestamp % 3600 ? ':i' : ''), $timestamp);
// Or DateTime object
$dateTime = date_create_from_format('d/m/Y H:i', $dateString);
$newDateString = $dateTime->format('d/m/Y H' . ($dateTime->format('i') == 0 ? '' : ':i'));
Но это кажется излишне сложным, когда вы можетепросто удалите завершающий «: 00».
$newDateString = preg_replace('/:00$/', '', $dateString);
Обязательно включите в шаблон $
, чтобы он совпадал только с :00
в конце строки.