class DurationIso8601
Same name and namespace in other branches
- 8.9.x core/lib/Drupal/Core/TypedData/Plugin/DataType/DurationIso8601.php \Drupal\Core\TypedData\Plugin\DataType\DurationIso8601
- 10 core/lib/Drupal/Core/TypedData/Plugin/DataType/DurationIso8601.php \Drupal\Core\TypedData\Plugin\DataType\DurationIso8601
- 11.x core/lib/Drupal/Core/TypedData/Plugin/DataType/DurationIso8601.php \Drupal\Core\TypedData\Plugin\DataType\DurationIso8601
The duration ISO8601 data type.
The plain value of this data type is an ISO8601 duration string.
Plugin annotation
@DataType(
id = "duration_iso8601",
label = @Translation("Duration")
)
Hierarchy
- class \Drupal\Core\TypedData\TypedData extends \Drupal\Core\TypedData\TypedDataInterface, \Drupal\Component\Plugin\PluginInspectionInterface uses \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\TypedData\TypedDataTrait
- class \Drupal\Core\TypedData\PrimitiveBase extends \Drupal\Core\TypedData\PrimitiveInterface implements \Drupal\Core\TypedData\TypedData
- class \Drupal\Core\TypedData\Plugin\DataType\StringData extends \Drupal\Core\TypedData\Type\StringInterface implements \Drupal\Core\TypedData\PrimitiveBase
- class \Drupal\Core\TypedData\Plugin\DataType\DurationIso8601 extends \Drupal\Core\TypedData\Type\DurationInterface implements \Drupal\Core\TypedData\Plugin\DataType\StringData
- class \Drupal\Core\TypedData\Plugin\DataType\StringData extends \Drupal\Core\TypedData\Type\StringInterface implements \Drupal\Core\TypedData\PrimitiveBase
- class \Drupal\Core\TypedData\PrimitiveBase extends \Drupal\Core\TypedData\PrimitiveInterface implements \Drupal\Core\TypedData\TypedData
Expanded class hierarchy of DurationIso8601
File
-
core/
lib/ Drupal/ Core/ TypedData/ Plugin/ DataType/ DurationIso8601.php, line 17
Namespace
Drupal\Core\TypedData\Plugin\DataTypeView source
class DurationIso8601 extends StringData implements DurationInterface {
/**
* {@inheritdoc}
*/
public function getDuration() {
if ($this->value) {
// @todo: Add support for negative intervals on top of the DateInterval
// constructor.
return new \DateInterval($this->value);
}
}
/**
* {@inheritdoc}
*/
public function setDuration(\DateInterval $duration, $notify = TRUE) {
// Generate an ISO 8601 formatted string as supported by
// DateInterval::__construct() and setValue().
$this->value = $duration->format('%rP%yY%mM%dDT%hH%mM%sS');
// Notify the parent of any changes.
if ($notify && isset($this->parent)) {
$this->parent
->onChange($this->name);
}
}
}
Members
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.