function Datelist::incrementRound
Same name in other branches
- 9 core/lib/Drupal/Core/Datetime/Element/Datelist.php \Drupal\Core\Datetime\Element\Datelist::incrementRound()
- 8.9.x core/lib/Drupal/Core/Datetime/Element/Datelist.php \Drupal\Core\Datetime\Element\Datelist::incrementRound()
- 10 core/lib/Drupal/Core/Datetime/Element/Datelist.php \Drupal\Core\Datetime\Element\Datelist::incrementRound()
Rounds minutes and seconds to nearest requested value.
Parameters
$date: The date.
$increment: The value to round to.
Return value
\Drupal\Core\Datetime\DrupalDateTime
1 call to Datelist::incrementRound()
- Datelist::valueCallback in core/
lib/ Drupal/ Core/ Datetime/ Element/ Datelist.php - Validates the date type to adjust 12 hour time and prevent invalid dates. If the date is valid, the date is set in the form.
File
-
core/
lib/ Drupal/ Core/ Datetime/ Element/ Datelist.php, line 363
Class
- Datelist
- Provides a datelist element.
Namespace
Drupal\Core\Datetime\ElementCode
protected static function incrementRound(&$date, $increment) {
// Round minutes and seconds, if necessary.
if ($date instanceof DrupalDateTime && $increment > 1) {
$day = intval($date->format('j'));
$hour = intval($date->format('H'));
$second = intval(round(intval($date->format('s')) / $increment) * $increment);
$minute = intval($date->format('i'));
if ($second == 60) {
$minute += 1;
$second = 0;
}
$minute = intval(round($minute / $increment) * $increment);
if ($minute == 60) {
$hour += 1;
$minute = 0;
}
$date->setTime($hour, $minute, $second);
if ($hour == 24) {
$day += 1;
$year = $date->format('Y');
$month = $date->format('n');
$date->setDate($year, $month, $day);
}
}
return $date;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.