diff --git a/mod/network.php b/mod/network.php index a2c20ba40a..59e3b80b5b 100644 --- a/mod/network.php +++ b/mod/network.php @@ -54,7 +54,7 @@ function network_init(App $a) if ($a->argc > 1) { for ($x = 1; $x < $a->argc; $x ++) { - if (DI::dtFormat()->isYearMonth($a->argv[$x])) { + if (DI::dtFormat()->isYearMonthDay($a->argv[$x])) { $is_a_date_query = true; break; } @@ -440,7 +440,7 @@ function networkThreadedView(App $a, $update, $parent) if ($a->argc > 1) { for ($x = 1; $x < $a->argc; $x ++) { - if (DI::dtFormat()->isYearMonth($a->argv[$x])) { + if (DI::dtFormat()->isYearMonthDay($a->argv[$x])) { if ($datequery) { $datequery2 = Strings::escapeHtml($a->argv[$x]); } else { diff --git a/src/Util/DateTimeFormat.php b/src/Util/DateTimeFormat.php index e29420e9ea..1725a0e02d 100644 --- a/src/Util/DateTimeFormat.php +++ b/src/Util/DateTimeFormat.php @@ -181,4 +181,25 @@ class DateTimeFormat return true; } + + /** + * Checks, if the given string is a date with the pattern YYYY-MM-DD + * + * @param string $dateString The given date + * + * @return boolean True, if the date is a valid pattern + */ + public function isYearMonthDay(string $dateString) + { + $date = DateTime::createFromFormat('Y-m-d', $dateString); + if (!$date) { + return false; + } + + if (DateTime::getLastErrors()['error_count'] || DateTime::getLastErrors()['warning_count']) { + return false; + } + + return true; + } }