/**
  * Tests date string to see if it is in a recognized format.
  * @param string $date Date string to test.
  * @param array|null $formats Data formats to test.
  * @returns \DateTime
  * @throws ContentValidationException
  */
 public static function validateDateString($date, $formats = null)
 {
     if ($formats == null) {
         $formats = array('Y-m-d', 'm/d/y', 'm/d/Y', 'n/j/y', 'n/j/Y', 'F d, Y', 'F j, Y', 'M d, Y', 'M j, Y');
     } elseif (!is_array($formats)) {
         $formats = array($formats);
     }
     foreach ($formats as $format) {
         $d = Validation::_testDateFormat($date, $format);
         if ($d instanceof \DateTime) {
             return $d;
         }
     }
     throw new ContentValidationException("Unrecognized date value.");
 }