Help checking the time

I need to check if the time is between to set times, and in response turn a pin to low. However, my time stamps printed to serial are different than I would expect (See below).

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

#define RELAY_ON 0
#define RELAY_OFF 1
#define Relay_1 8

RTC_DS1307 RTC;
char rtc_Time[12];
char rtc_Date[12];

/*----( Light variables )----*/
int light_ON_Hour = 06;
int light_ON_Min = 30;
int light_ON_Sec = 00;

int light_OFF_Hour = 21;
int light_OFF_Min = 30;
int light_OFF_Sec = 00;

void setup(void){

  
  digitalWrite(Relay_1, RELAY_OFF); //Turn relays off immediately
  pinMode(Relay_1, OUTPUT); //Set the pinmode

#if ECHO_TO_SERIAL
  Serial.begin(9600);
  Serial.print("ECHO_TO_Serial = True");
#endif

  Wire.begin(); //Begin the I2C protocol
  RTC.begin(); //Begin the RTC
  setSyncProvider(syncProvider);

  Alarm.alarmRepeat(light_ON_Hour, light_ON_Min, light_ON_Sec, light_On);
  Alarm.alarmRepeat(light_OFF_Hour, light_OFF_Min, light_OFF_Sec, light_Off);

  check_Relays();

}//setup

void check_Relays(){ //chekcs to see if the relays should be on or not

  time_t n = now(); //get the time from the arduino, not the RTC
  time_t s = tmConvert_t(light_ON_Hour, light_ON_Min, light_ON_Sec); //convert ON to timestamp
  time_t e = tmConvert_t(light_OFF_Hour, light_OFF_Min, light_OFF_Sec); //convert OFF to timestamp

  if (s <= n && n <= e){  //see if the current time is between the ON and OFF times
    digitalWrite(Relay_1, RELAY_ON);  // Sets Relay_1 "on"
  }

#if ECHO_TO_SERIAL
  Serial.println("Checking relays");
  Serial.print("n : ");
  Serial.print(n);
  Serial.print("\t");
  Serial.print("s : ");
  Serial.print(s);
  Serial.print("\t");
  Serial.print("e : ");
  Serial.print(e);

  if (s <= n && n <= e) 
  {
    Serial.println("Light should be ON"); 
  }
  else{
    Serial.println("Light should be OFF");
  }
#endif//ECHO_TO_SERIAL

}//Check_relays

time_t tmConvert_t(int hh, int mm, int ss) //Converts time into a timestamp
{
  tmElements_t tmSet;
  tmSet.Hour = hh;
  tmSet.Minute = mm;
  tmSet.Second = ss;
  return makeTime(tmSet);         //convert to time_t
}//tmConvert_t

time_t syncProvider()     //this does the same thing as RTC_DS1307::get(), needed for RTC to set the time of the arduino
{
  return RTC.now().unixtime();
}

Serial prints:
n : 1387282020 s : 2198534504 e : 2198588504 Light should be OFF

However, if I change “time_t n = now();” to “time_t n = RTC.now().unixtime();” I get a different result for variables s and e :
n : 1387282192 s : 2277181800 e : 2277235800 Light should be OFF (about 30 years into the future!!!)

Given that my current local time is 12:14, I would expect my light to turn on!

The RTC class has methods to get the time as hour(), min() and sec(). Perhaps you should do that to confirm that you are getting the correct time.

Then, since you have hours, minutes, and seconds, quit diddling around trying to convert three sets of hours, minutes, and seconds to time_t format, and just use hours, minutes, and seconds (or not seconds).