--- /dev/null
+/**
+ * Implements hook_field_widget_properties_ENTITY_TYPE_alter().
+ */
+function {{ machine_name }}_field_widget_properties_ENTITY_TYPE_alter(&$widget, $context) {
+ // Change a widget's type according to the time of day.
+ $field = $context['field'];
+ if ($field['field_name'] == 'field_foo') {
+ $time = date('H');
+ $widget['type'] = $time < 12 ? 'widget_am' : 'widget_pm';
+ }
+}