Electrical locking mechanism (on timer)
Solenoids are simple but fairly inefficient ways of holding things for a long duration of time - in fact, a lot intended for momentary use will overheat and suffer damage if they are left on for minutes/hours, though obviously there are those rated for that.

A solenoid that releases a latch could be preferable to one which actually holds the door shut, since the latch release only has to occur briefly.  If your timing mechanism can't produce a brief pulse, you may be able to wire a switch into the door such that once the door opens the power to the solenoid is cut; still, think about what happens if the door jams and fails to open.  Conversely, if you are holding the door shut with the solenoid you will probably find out soon (while you are around to see the smoke) if it can survive that duty cycle, and if it fails, the door opens early rather than not at all.

Motor based solutions are more complicated, but by taking a longer duration of time to accomplish the opening they can use mechanical advantage to do it with lower amounts of power.  Still, you have the cutoff problem.  An RC Servo with a 555 pulse generator setup so that when the power comes on it produces a pulse width to go to the open position could be an option, but in order to manually close it you'd need a way to bypass the when-to-open timer to power it, and also a switch to change the pulse width to command the motor to the closed position.

For something that can perform more than one feeding you might look at either a rotary disk where a new compartment opens every 45 degrees and either step motor or more likely a gear motor and simple one channel encoder (probably and photo interrupter).  Or you could do something with an auger feeding food out of a hopper.  For any  multi-day solution, you could then add a webcam or even just a still camera that takes a picture 30 seconds after opening and emails it to your phone, so that you can see the pet happily munching away on food that was delivered... or find out you need to call a friend to go check on the situation.