After miraculously recovering from a bullet wound to the head, Gulf War veteran Jack Starks (Adrien Brody) returns to Vermont in 1992, suffering from periods of amnesia. While walking, he sees a young girl, Jackie (Laura Marano), and her alcoholic mother (Kelly Lynch) in despair beside their broken-down truck. Starks and Jackie quickly form a certain affinity; she asks him to give her his dogtags and he does so. He gets the truck started for them and continues on his way. Shortly after, a man driving along the same highway gives Jack a ride and they get pulled over by a policeman. The scene changes: Starks is found lying on the deserted roadside near the dead policeman, with a slug from the policeman's gun in his body. The murder weapon is on the ground nearby. Although he testifies there was someone else at the scene, he is not believed because of his amnesia. Starks is found not guilty by reason of insanity and is incarcerated in a mental institution.
Starks is placed in the care of Dr. Thomas Becker (Kris Kristofferson), a psychiatrist, and his staff. In December 1992 Starks is forced to undergo an unauthorized treatment designed by Becker: he is injected with experimental drugs, bound in a straitjacket and then placed inside a morgue drawer as a form of sensory deprivation. While in this condition, he is somehow able to travel 15 years into the future and stay there for a short time. He meets an older version of Jackie (Keira Knightley) at a roadside diner where she works. He suspects this happens because it is the only memory he can ever fully hold on to. Seeing him standing forlornly, she takes pity on him and offers him shelter, just for the night. While in her apartment, Starks comes across his own dogtags and confronts her. Jackie tells him that Jack Starks died on New Year's Day in 1993, and so he cannot possibly be who he says he is. She becomes upset and asks him to leave. Subsequently, Starks is transported back to the future on several occasions in the course of his treatment and, after earning Jackie's trust, they try to figure out how to make use of the time-travelling so as to remove Jack from the hospital and save his life.
Early on 1 January 1993, knowing that his time is quickly running out, Starks is briefly taken out of the hospital by Dr. Beth Lorenson, who he has finally convinced of his time travel experiences and his knowledge of future events. She drives Starks to the home of Jackie and her mother, where he gives the mother a letter he has written, which outlines Jackie's bleak future and warns the mother that she is fated to orphan Jackie when she falls asleep with a cigarette and is burned to death. When he returns to the hospital, Starks slips on the ice and hits his head. Bleeding profusely, he convinces two of the more sympathetic doctors to put him into the jacket one last time.
Starks returns to 2007, where he finds that his letter has made all the difference. Jackie now has a better life than in the previous version of 2007. She is no longer a waitress, she is now dressed in a nurse's uniform, and she has a noticeably more cheerful outlook. They reprise their first 2007 meeting: she sees Starks standing in the snow and initially drives past him, but backs up when she notices his head wound. She stops and offers to take him to the hospital where she works. While they are in the car, Jackie receives a call from her mother â still alive and well. They drive on, the screen fades to white, and a voice-over reveals that the link to the "previous" future is not lost when Jackie says "How much time do we have?", a question she has asked him before. As the credits start to roll, the answer to the question is given by the words of the song: "We have all the time in the world" sung by Iggy Pop.

Question: Who does Jack give his dogtags to?
Answer: Jackie
Alternative answer: Jackie.