diff --git a/web-test/model/business-logic/discounts-engine/engine/discount-is-applicable.test.js b/web-test/model/business-logic/discounts-engine/engine/discount-is-applicable.test.js
index 2390ae6..2b18876 100644
--- a/web-test/model/business-logic/discounts-engine/engine/discount-is-applicable.test.js
+++ b/web-test/model/business-logic/discounts-engine/engine/discount-is-applicable.test.js
@@ -1,6 +1,6 @@
 /*
  ************************************************************************************
- * Copyright (C) 2022 Openbravo S.L.U.
+ * Copyright (C) 2022-2023 Openbravo S.L.U.
  * Licensed under the Openbravo Commercial License version 1.0
  * You may obtain a copy of the License at http://www.openbravo.com/legal/obcl.html
  * or in the legal folder of this module distribution.
@@ -13,6 +13,7 @@ global.OB = {};
 
 require('../../../../../web/org.openbravo.retail.discounts/app/model/business-logic/discounts-engine/engine/discount-engine');
 require('../../../../../web/org.openbravo.retail.discounts/app/model/business-logic/discounts-engine/engine/discount-rules');
+require('../../../../../web/org.openbravo.retail.discounts/app/model/business-logic/discounts-engine/interface/discount-posinterface.js');
 
 const TicketIO = {
   id: 'Ticket01',
diff --git a/web/org.openbravo.retail.discounts/app/model/business-logic/discounts-engine/engine/discount-rules.js b/web/org.openbravo.retail.discounts/app/model/business-logic/discounts-engine/engine/discount-rules.js
index e033180..d376f2c 100644
--- a/web/org.openbravo.retail.discounts/app/model/business-logic/discounts-engine/engine/discount-rules.js
+++ b/web/org.openbravo.retail.discounts/app/model/business-logic/discounts-engine/engine/discount-rules.js
@@ -356,16 +356,17 @@
     const orderDate = ticket.orderDate
       ? new Date(ticket.orderDate)
       : new Date();
-    const currentDate = new Date(orderDate.toISOString().split('T')[0]);
+    const currentDate = OB.Discounts.Pos.getDateWithoutTime(orderDate);
     if (
       discountImpl.startingDate &&
-      new Date(discountImpl.startingDate.split('T')[0]) > currentDate
+      OB.Discounts.Pos.getDateWithoutTime(discountImpl.startingDate) >
+        currentDate
     ) {
       return false;
     }
     if (
       discountImpl.endingDate &&
-      new Date(discountImpl.endingDate.split('T')[0]) < currentDate
+      OB.Discounts.Pos.getDateWithoutTime(discountImpl.endingDate) < currentDate
     ) {
       return false;
     }
@@ -380,12 +381,15 @@
         return true;
       }
 
-      const getTicketDateWithFilterTime = time => {
-        const ticketDateWithNewTime = `${
-          orderDate.toISOString().split('T')[0]
-        }T${time.substring(11, 19)}`;
-
-        return new Date(ticketDateWithNewTime);
+      const getTicketDateWithFilterTime = filterTime => {
+        const year = currentDate.getFullYear();
+        const month = (currentDate.getMonth() + 1).toString().padStart(2, '0');
+        const date = currentDate
+          .getDate()
+          .toString()
+          .padStart(2, '0');
+        const time = filterTime.substring(11, 19);
+        return new Date(`${year}-${month}-${date}T${time}`);
       };
       const availableDateTimes = discountImpl.availableDateTimes.filter(
         dateTime => {
@@ -506,9 +510,11 @@
         org =>
           org.organization === currentStore &&
           ((!org.startingDate ||
-            new Date(org.startingDate.split('T')[0]) <= currentDate) &&
+            OB.Discounts.Pos.getDateWithoutTime(org.startingDate) <=
+              currentDate) &&
             (!org.endingDate ||
-              new Date(org.endingDate.split('T')[0]) >= currentDate))
+              OB.Discounts.Pos.getDateWithoutTime(org.endingDate) >=
+                currentDate))
       );
       onlyIncluded = discountImpl.includedOrganizations === 'N';
       applicable =
diff --git a/web/org.openbravo.retail.discounts/app/model/business-logic/discounts-engine/interface/discount-posinterface.js b/web/org.openbravo.retail.discounts/app/model/business-logic/discounts-engine/interface/discount-posinterface.js
index f98d085..826c674 100644
--- a/web/org.openbravo.retail.discounts/app/model/business-logic/discounts-engine/interface/discount-posinterface.js
+++ b/web/org.openbravo.retail.discounts/app/model/business-logic/discounts-engine/interface/discount-posinterface.js
@@ -733,12 +733,14 @@
    * @return {Object[]} The list of discounts matching the date filter.
    */
   OB.Discounts.Pos.filterDiscountsByDate = (discounts, date) => {
-    const dateWithoutTime = new Date(date.toISOString().split('T')[0]);
+    const dateWithoutTime = OB.Discounts.Pos.getDateWithoutTime(date);
     return discounts.filter(
       discount =>
-        new Date(discount.startingDate.split('T')[0]) <= dateWithoutTime &&
+        OB.Discounts.Pos.getDateWithoutTime(discount.startingDate) <=
+          dateWithoutTime &&
         (!discount.endingDate ||
-          new Date(discount.endingDate.split('T')[0]) >= dateWithoutTime)
+          OB.Discounts.Pos.getDateWithoutTime(discount.endingDate) >=
+            dateWithoutTime)
     );
   };
 
@@ -774,6 +776,21 @@
     );
   };
 
+  /**
+   * Removes time from date/date_string
+   * @param {Object} date - object which can be date object or date_string in ISO Format
+   * @return {Date} date object without time
+   */
+  OB.Discounts.Pos.getDateWithoutTime = date => {
+    if (date instanceof Date) {
+      return new Date(date.getFullYear(), date.getMonth(), date.getDate());
+    }
+    if (typeof date === 'string' && date.indexOf('T') > 0) {
+      return new Date(`${date.split('T')[0]}T00:00:00`);
+    }
+    return date;
+  };
+
   /**
    * Reads the discount masterdata model information from database.
    * This information is used to initialize the discount caches.
