Turn on peristaltic pump relay for x amount of interval using millis

Hi guys, this is my very first code in arduino. Im trying to build a simple watering automation for my garden. The code contain 3 main functions which is:

  1. To topup fertilizer tank with water.
  2. To add fertilizer into the water tank while water being topup with assumption fertilizer will be mix during this process.
  3. To automated watering process through the day.

For the 1st and 3rd function, Im already got it done (theoretically + small scale system) i think. haha!

Now, for the fertilizer function number 2, im using 2 peristaltic pump to add AB fertilizer solutions into the tank. Im trying to get the pump to run for the x amount of interval but the the function only run once, after that relay wont trigger anymore. Could anyone please help and guide me which part im missing? Im open for any suggestion to improved my code too.. Thank you.

#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 RTC;

#define relayON HIGH
#define relayOFF LOW
#define floatWET HIGH
#define floatDRY LOW

const byte bottom_float = 13; //bottom position float switch
const byte top_float = 12; //top position float switch
const byte relay_topup_PUMP = 2; //Relay 1 for PUMP/Solenoid to topup water into the fertilizer tank
const byte relay_watering_PUMP = 3; //Relay 2 for scheduled watering PUMP
const byte relay_fertilizer_PUMPA = 4; //Relay 3 for Peristaltic PUMP "A" solution fertilizer
const byte relay_fertilizer_PUMPB = 5; //Relay 4 for Peristaltic PUMP "B" solution fertilizer

unsigned long previousMillis = 0;   // stores last time relay was active(on)
unsigned long fertilizer_pumpON_interval = 10000; //(10s for testing)Time to turn ON fertilizer peristaltic pump to get required EC reading

void topup_PUMP();
void watering_PUMP();
void fertilizer_PUMP();

void setup ()
{
  Serial.begin (9600);
  Wire.begin();
  //  RTC.begin();

  if (! RTC.begin())
  {
    Serial.println("Couldn't find RTC");
    while (1);
  }
  if (! RTC.isrunning())
  {
    Serial.println("RTC is NOT running!");
  }
  // following line sets the RTC to the date & time this sketch was compiled
  // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  // This line sets the RTC with an explicit date & time, for example to set
  // January 21, 2014 at 3am you would call:
  // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));

  pinMode (bottom_float, INPUT_PULLUP);
  pinMode (top_float, INPUT_PULLUP);
  pinMode (relay_topup_PUMP, OUTPUT);
  pinMode (relay_watering_PUMP, OUTPUT);
  pinMode (relay_fertilizer_PUMPA, OUTPUT);
  pinMode (relay_fertilizer_PUMPB, OUTPUT);

  //digitalWrite (relay_topup_PUMP, relayOFF);
  //digitalWrite (relay_watering_PUMP, relayOFF);
  digitalWrite (relay_fertilizer_PUMPA, relayOFF);
  digitalWrite (relay_fertilizer_PUMPB, relayOFF);

  DateTime now = RTC.now();
}   // end of setup

void loop ()
{
  //  topup_PUMP();
  //  watering_PUMP();
  fertilizer_PUMP();
}

//void topup_PUMP()
//{
//  if (digitalRead (top_float) == floatDRY && digitalRead (bottom_float) == floatDRY)
//  {
//    Serial.println("TOPUP PUMP ON");
//    digitalWrite(relay_topup_PUMP, relayON);
//  }
//
//  if (digitalRead (top_float) == floatWET && digitalRead (bottom_float) == floatWET)
//  {
//    Serial.println("TOPUP PUMP OFF");
//    digitalWrite(relay_topup_PUMP, relayOFF);
//  }
//  delay (1000);
//}
//
//void watering_PUMP()
//{
////  DateTime now = RTC.now();
//      Serial.print(now.hour(), DEC);
//      Serial.print(':');
//      Serial.print(now.minute(), DEC);
//      Serial.print(':');
//      Serial.print(now.second(), DEC);
//      Serial.print(' ');
//      Serial.print(now.day(), DEC);
//      Serial.print('/');
//      Serial.print(now.month(), DEC);
//      Serial.print('/');
//      Serial.print(now.year(), DEC);
//      Serial.println();
//      delay(1000);
//
//  boolean watering_PUMPstate = false;
//  if (now.hour() == 15 && now.minute() >= 38 && now.minute() < 39) watering_PUMPstate = true;    //6:00 am - 5 mins
//  if (now.hour() == 15 && now.minute() >= 40 && now.minute() < 41) watering_PUMPstate = true;  //8:30 am - 5 mins
////  if (now.hour() == 11 && now.minute() >= 0 && now.minute() < 5) watering_PUMPstate = true;  //11:00 am - 5 mins
////  if (now.hour() == 13 && now.minute() >= 30 && now.minute() < 35) watering_PUMPstate = true;  //1:30 pm - 5 mins
////  if (now.hour() == 16 && now.minute() >= 0 && now.minute() < 10) watering_PUMPstate = true;  //4:00 pm - 10 mins
//
//  if (watering_PUMPstate == true)
//  {
//    digitalWrite(relay_watering_PUMP, relayON);
//    Serial.print("\t");
//    Serial.println(F("Watering Plant"));
//    Serial.print("\t");
//    Serial.println();
//  }
//  else
//  {
//    digitalWrite(relay_watering_PUMP, relayOFF);
//  }
//}

void fertilizer_PUMP()
{
  unsigned long currentTime = millis();
  boolean fertilizer_pumpON = false;
  if ((digitalRead (top_float) == floatDRY) && (digitalRead (bottom_float) == floatWET) && (currentTime - previousMillis <= fertilizer_pumpON_interval)) //Turn on for 10s
  {
    Serial.print("\t");
    Serial.println(currentTime);
    delay (1000);
    fertilizer_pumpON = true;
  }

  if (fertilizer_pumpON == true)
  {
    Serial.print("\t");
    Serial.println(F("Adding Fertilizer A and B"));
    delay (1000);
    digitalWrite(relay_fertilizer_PUMPA, relayON);
    digitalWrite(relay_fertilizer_PUMPB, relayON);

  }
  else
  {
    digitalWrite(relay_fertilizer_PUMPA, relayOFF);
    digitalWrite(relay_fertilizer_PUMPB, relayOFF);

  }
}