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