diff --git a/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldDate.php b/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldDate.php
--- a/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldDate.php
+++ b/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldDate.php
@@ -24,7 +24,7 @@
 
   public function getValueForStorage() {
     $value = $this->getFieldValue();
-    if (strlen($value)) {
+    if (phutil_nonempty_scalar($value)) {
       return (int)$value;
     } else {
       return null;
@@ -32,7 +32,7 @@
   }
 
   public function setValueFromStorage($value) {
-    if (strlen($value)) {
+    if (phutil_nonempty_scalar($value)) {
       $value = (int)$value;
     } else {
       $value = null;
@@ -74,7 +74,8 @@
     // specify as a string. Parse the string into an epoch.
 
     $value = $this->getFieldValue();
-    if (!ctype_digit($value)) {
+    if ($value !== null && gettype($value) !== 'integer' &&
+        !ctype_digit($value)) {
       $value = PhabricatorTime::parseLocalTime($value, $this->getViewer());
     }