diff --git a/app/helpers/registration_limitation_helper.rb b/app/helpers/registration_limitation_helper.rb
index 65e295720c..4ac04450aa 100644
--- a/app/helpers/registration_limitation_helper.rb
+++ b/app/helpers/registration_limitation_helper.rb
@@ -32,20 +32,22 @@ module RegistrationLimitationHelper
   end
 
   def registrations_in_time?
-    start_hour = Setting.registrations_start_hour || 0
-    end_hour = Setting.registrations_end_hour || 24
-    secondary_start_hour = Setting.registrations_secondary_start_hour || 0
-    secondary_end_hour = Setting.registrations_secondary_end_hour || 0
+    start_hour = Setting.registrations_start_hour
+    end_hour = Setting.registrations_end_hour
+    secondary_start_hour = Setting.registrations_secondary_start_hour
+    secondary_end_hour = Setting.registrations_secondary_end_hour
+
+    start_hour = 0           unless start_hour.is_a?(Integer)
+    end_hour = 0             unless end_hour.is_a?(Integer)
+    secondary_start_hour = 0 unless secondary_start_hour.is_a?(Integer)
+    secondary_end_hour = 0   unless secondary_end_hour.is_a?(Integer)
 
     return true if start_hour >= end_hour && secondary_start_hour >= secondary_end_hour
 
     current_hour = Time.now.utc.hour
-    primary_permitted = false
-    primary_permitted = start_hour <= current_hour && current_hour < end_hour if start_hour < end_hour && end_hour.positive?
-    secondary_permitted = false
-    secondary_permitted = secondary_start_hour <= current_hour && current_hour < secondary_end_hour if secondary_start_hour < secondary_end_hour && secondary_end_hour.positive?
 
-    primary_permitted || secondary_permitted
+    (start_hour < end_hour && end_hour.positive? && current_hour.between?(start_hour, end_hour - 1)) ||
+      (secondary_start_hour < secondary_end_hour && secondary_end_hour.positive? && current_hour.between?(secondary_start_hour, secondary_end_hour - 1))
   end
 
   def reset_registration_limit_caches!