Merge pull request #5894 from WoltLab/bugfix/search-time
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / search / SearchHandler.class.php
index ca4ca094496af415bcb7f0439b140aed61c97c3f..63971a7de77f4c951c3b1119d776137614d8a1f6 100644 (file)
@@ -144,8 +144,30 @@ final class SearchHandler
 
     private function buildDateCondition(): void
     {
-        $startDate = !empty($this->parameters['startDate']) ? @\strtotime($this->parameters['startDate']) : 0;
-        $endDate = !empty($this->parameters['endDate']) ? @\strtotime($this->parameters['endDate']) : 0;
+        if (!empty($this->parameters['startDate'])) {
+            $startDateTime = \DateTime::createFromFormat(
+                "Y-m-d",
+                $this->parameters['startDate'],
+                WCF::getUser()->getTimezone()
+            );
+            $startDateTime->setTime(0, 0, 0);
+            $startDate = $startDateTime->getTimestamp();
+        } else {
+            $startDate = 0;
+        }
+
+        if (!empty($this->parameters['endDate'])) {
+            $endDateTime = \DateTime::createFromFormat(
+                "Y-m-d",
+                $this->parameters['endDate'],
+                WCF::getUser()->getTimezone()
+            );
+            $endDateTime->setTime(23, 59, 59);
+            $endDate = $endDateTime->getTimestamp();
+        } else {
+            $endDate = 0;
+        }
+
         if ($startDate && $endDate) {
             $this->conditionBuilder->add('time BETWEEN ? AND ?', [$startDate, $endDate]);
         } elseif ($startDate) {