function datetime_default_value

Sets a default value for an empty date field.

Callback for $instance['default_value_function'], as implemented by Drupal\datetime\Plugin\field\widget\DateTimeDatepicker.

Parameters

$entity_type:

$entity:

array $field:

array $instance:

$langcode:

Return value

array

3 string references to 'datetime_default_value'
DateTimeDatelistWidget::defaultValueFunction in drupal/core/modules/datetime/lib/Drupal/datetime/Plugin/field/widget/DatetimeDatelistWidget.php
Returns the callback used to set a date default value.
DateTimeDefaultWidget::defaultValueFunction in drupal/core/modules/datetime/lib/Drupal/datetime/Plugin/field/widget/DatetimeDefaultWidget.php
Return the callback used to set a date default value.
DatetimeFieldTest::testDefaultValue in drupal/core/modules/datetime/lib/Drupal/datetime/Tests/DatetimeFieldTest.php
Test default value functionality.

File

drupal/core/modules/datetime/datetime.module, line 272
Field hooks to implement a simple datetime field.

Code

function datetime_default_value($entity, $field, $instance, $langcode) {
  $value = '';
  $date = '';
  if ($instance['settings']['default_value'] == 'now') {

    // A default value should be in the format and timezone used for date
    // storage.
    $date = new DrupalDateTime('now', DATETIME_STORAGE_TIMEZONE);
    $storage_format = $field['settings']['datetime_type'] == 'date' ? DATETIME_DATE_STORAGE_FORMAT : DATETIME_DATETIME_STORAGE_FORMAT;
    $value = $date
      ->format($storage_format);
  }

  // We only provide a default value for the first item, as do all fields.
  // Otherwise, there is no way to clear out unwanted values on multiple value
  // fields.
  $item = array();
  $item[0]['value'] = $value;
  $item[0]['date'] = $date;
  return $item;
}