1 date.class.inc public BackdropDateTime::setFuzzyDate($date, $format = NULL, $default = 'first')

Forces an incomplete date to be valid.

e.g. Add a valid year, month, and day if only the time has been defined.


array|string $date: An array of date parts or a datetime string with values to be massaged into a valid date object.

string $format: (optional) The format of the date. Defaults to NULL.

string $default: (optional) If the fallback should use the first value of the date part, or the current value of the date part. Defaults to 'first'.


core/includes/date.class.inc, line 717


Extends PHP DateTime class for use with Backdrop.


public function setFuzzyDate($date, $format = NULL, $default = 'first') {
  $timezone = $this->getTimeZone() ? $this->getTimeZone()->getName() : NULL;
  $comp = new BackdropDateTime($date, $timezone, $format);
  $arr = $comp->toArray(TRUE);
  foreach ($arr as $key => $value) {
    // Set to intval here and then test that it is still an integer.
    // Needed because sometimes valid integers come through as strings.
    $arr[$key] = $this->forceValid($key, intval($value), $default, $arr['month'], $arr['year']);
  $this->setDate($arr['year'], $arr['month'], $arr['day']);
  $this->setTime($arr['hour'], $arr['minute'], $arr['second']);