//   appends an ExtendedDocument::createElementInputTime() as a child of this document (see there for params)
   //     returns the new child
   //
+  // public function appendInputDateTime($name, [$id], [$min], [$max], [$value])
+  //   appends an ExtendedDocument::createElementInputDateTime() as a child of this document (see there for params)
+  //     returns the new child
+  //
   // public function appendInputColor($name, [$id], [$value])
   //   appends an ExtendedDocument::createElementInputColor() as a child of this document (see there for params)
   //     returns the new child
   //   returns an ExtendedElement that is an HTML <input> of type 'time' with the given name,
   //   and optionally id, min, max, and value
   //
+  // public function createElementInputDateTime($name, [$id], [$min], [$max], [$value])
+  //   returns an ExtendedElement that is an HTML <input> of type 'datetime-local' with the given name,
+  //   and optionally id, min, max, and value
+  //
   // public function createElementInputColor($name, [$id], [$value])
   //   returns an ExtendedElement that is an HTML <input> of type 'color' with the given name,
   //   and optionally id and value
   public function appendInputTime($name, $id = null, $min = null, $max = null, $value = null) {
     return $this->appendChild($this->createElementInputTime($name, $id, $min, $max, $value));
   }
+  public function appendInputDateTime($name, $id = null, $min = null, $max = null, $value = null) {
+    return $this->appendChild($this->createElementInputDateTime($name, $id, $min, $max, $value));
+  }
   public function appendInputColor($name, $id = null, $value = null) {
     return $this->appendChild($this->createElementInputColor($name, $id, $value));
   }
     return $timefield;
   }
 
+  public function createElementInputDateTime($name, $id = null, $min = null, $max = null, $value = null) {
+    $dtfield = $this->createElement('input');
+    $dtfield->setAttribute('type', 'datetime-local');
+    if (!is_null($id)) { $dtfield->setAttribute('id', $id); }
+    $dtfield->setAttribute('name', $name);
+    if (!is_null($min)) { $dtfield->setAttribute('min', $min); }
+    if (!is_null($max)) { $dtfield->setAttribute('max', $max); }
+    if (!is_null($value)) { $dtfield->setAttribute('value', str_replace(' ', 'T', $value, 1)); }
+    return $dtfield;
+  }
+
   public function createElementInputColor($name, $id = null, $value = null) {
     $colfield = $this->createElement('input');
     $colfield->setAttribute('type', 'color');
   //   appends an ExtendedDocument::createElementInputTime() as a child of this element (see there for params)
   //     returns the new child
   //
+  // public function appendInputDateTime($name, [$id], [$min], [$max], [$value])
+  //   appends an ExtendedDocument::createElementInputDateTime() as a child of this element (see there for params)
+  //     returns the new child
+  //
   // public function appendInputColor($name, [$id], [$value])
   //   appends an ExtendedDocument::createElementInputColor() as a child of this element (see there for params)
   //
   public function appendInputTime($name, $id = null, $min = null, $max = null, $value = null) {
     return $this->appendChild($this->ownerDocument->createElementInputTime($name, $id, $min, $max, $value));
   }
+  public function appendInputDateTime($name, $id = null, $min = null, $max = null, $value = null) {
+    return $this->appendChild($this->ownerDocument->createElementInputDateTime($name, $id, $min, $max, $value));
+  }
   public function appendInputColor($name, $id = null, $value = null) {
     return $this->appendChild($this->ownerDocument->createElementInputColor($name, $id, $value));
   }
   //   appends an ExtendedDocument::createElementInputTime() as a child of this fragment (see there for params)
   //     returns the new child
   //
+  // public function appendInputDateTime($name, [$id], [$min], [$max], [$value])
+  //   appends an ExtendedDocument::createElementInputDateTime() as a child of this fragment (see there for params)
+  //     returns the new child
+  //
   // public function appendInputColor($name, [$id], [$value])
   //   appends an ExtendedDocument::createElementInputColor() as a child of this fragment (see there for params)
   //
   public function appendInputTime($name, $id = null, $min = null, $max = null, $value = null) {
     return $this->appendChild($this->ownerDocument->createElementInputTime($name, $id, $min, $max, $value));
   }
+  public function appendInputDateTime($name, $id = null, $min = null, $max = null, $value = null) {
+    return $this->appendChild($this->ownerDocument->createElementInputDateTime($name, $id, $min, $max, $value));
+  }
   public function appendInputColor($name, $id = null, $value = null) {
     return $this->appendChild($this->ownerDocument->createElementInputColor($name, $id, $value));
   }