This is done by maintaining a database of locations with the times I've been in them in Midgard CMS. To report a new location I simply send an SMS containing the city and country information to my website. This "ends" the previous location entry and creates a new one.
At the moment I'm content with granularity of storing location on city basis and time on per-day basis. However, far more detailed information could be added by connecting a GPS navigator to the system. While this would allow for cool new information like linking photos to maps, it would force me to carry and connect a bulky device, and cause potential privacy issues.
I'm also including the METAR weather information pulled in using the Services_Weather PEAR package. For now the weather displayed is the current one, but I'm thinking of storing the weather conditions on entry posting time to Midgard. That way you could see the temperature and other details related to a photo, for example.