1 date.class.inc | public BackdropDateTime::merge(BackdropDateTime $other) |
Merges two date objects together using the current date values as defaults.
Parameters
BackdropDateTime $other: Another date object to merge with.
Return value
BackdropDateTime: A merged date object.
File
- core/
includes/ date.class.inc, line 175
Class
- BackdropDateTime
- Extends PHP DateTime class for use with Backdrop.
Code
public function merge(BackdropDateTime $other) {
$other_tz = $other->getTimezone();
$this_tz = $this->getTimezone();
// Figure out which timezone to use for combination.
$use_tz = ($this->hasGranularity('timezone') || !$other->hasGranularity('timezone')) ? $this_tz : $other_tz;
$this2 = clone $this;
$this2->setTimezone($use_tz);
$other->setTimezone($use_tz);
$val = $this2->toArray(TRUE);
$otherval = $other->toArray();
foreach (self::$allgranularity as $g) {
if ($other->hasGranularity($g) && !$this2->hasGranularity($g)) {
// The other class has a property we don't; steal it.
$this2->addGranularity($g);
$val[$g] = $otherval[$g];
}
}
$other->setTimezone($other_tz);
$this2->setDate($val['year'], $val['month'], $val['day']);
$this2->setTime($val['hour'], $val['minute'], $val['second']);
return $this2;
}