The DS1307 keeps each time "segment" in separate registers, you may read only those you need by standard I2C. From the data sheet, the registers you require are 01H and 02H - minutes and hours respectively. The difficulty is only that the values are stored in BCD format. You may work with them directly, but I find it more intuitive to convert them to decimal, so that every calculation may be done with decimal result.

Below is a snippet from my recent work that reads ALL the DS1337 registers (I am sure they are the same, but '37 is without battery backup) and decodes them to the Debug for verification. You may use the entire code segment or, change the REG_TIM variable to match the first register you require, then collect only two values (as [ MIN, HR]). Also, abbreviate the loop (LP).

SDA/ SCL = PIN DESIGNATIONS, RTC_ADD = ADDRESS, REG_TIM = BEGINNING REGISTER TO READ, REG_VAL[X] = BCD register value from chip.

I2CRead SDA, SCL, RTC_ADD, REG_TIM, [REG_VAL[0], REG_VAL[1], REG_VAL[2], REG_VAL[3], REG_VAL[4], REG_VAL[5], REG_VAL[6]]
FOR LP = 0 TO 6 ' For each register
D0 = (REG_VAL[LP] >> 4) * 10 ' Decode 10's digit
D1 = REG_VAL[LP] & %0001111 ' Blank 10's, get 1's
REG_VAL[LP] = D0 + D1 ' Write Decimal value to register
NEXT LP ' Next register

DEBUG "TIME:[", dec1 REG_VAL[3], "] ", dec2 REG_VAL[5], "/", dec2 REG_VAL[4], "/", dec2 REG_VAL[6], " ", dec2 REG_VAL[2], ":", dec2 REG_VAL[1], ":", dec2 REG_VAL[0], 10

Debug should print TIME:[DOW] MO/DAY/YR HR:MN:SC and each REG_VAL[X] should contain the decimal value of the segment indicated.

At this point, then... Multiply HR * 60 + MN. Of course I (elsewhere) set my clock to 24 hour mode - or also read the AM/PM bit and add 12 hours as required.