]> git.mxchange.org Git - friendica.git/blobdiff - src/Util/DateTimeFormat.php
Move is_a_date_arg to DateTimeFormat::isYearMonth
[friendica.git] / src / Util / DateTimeFormat.php
index 0b47a16f1549b5fa86c4417bc1bd6949c6684c5c..e29420e9ea41c272dcbbb63868bc0ffac6972b0a 100644 (file)
@@ -148,4 +148,37 @@ class DateTimeFormat
 
                return $d->format($format);
        }
+
+       /**
+        * Checks, if the given string is a date with the pattern YYYY-MM
+        *
+        * @param string $dateString The given date
+        *
+        * @return boolean True, if the date is a valid pattern
+        */
+       public function isYearMonth(string $dateString)
+       {
+               // Check format (2019-01, 2019-1, 2019-10)
+               if (!preg_match('/^([12]\d{3}-(1[0-2]|0[1-9]|\d))$/', $dateString)) {
+                       return false;
+               }
+
+               $date = DateTime::createFromFormat('Y-m', $dateString);
+
+               if (!$date) {
+                       return false;
+               }
+
+               try {
+                       $now = new DateTime();
+               } catch (\Throwable $t) {
+                       return false;
+               }
+
+               if ($date > $now) {
+                       return false;
+               }
+
+               return true;
+       }
 }