Ben Johnson wrote:
Is it possible to set a person's time zone based on their IP
Not with any degree of certainty. IP addresses are not 'handed out' based on geographic location.
or some other factor than specifying their time zone?
The decision about the time zone a particular spot on the earth will use is a political one. There are states in the US, for example, that do not use Daylight Savings Time. So clocks within some states within the Central Time Zone will be set to CST while others will be set to CDT. It gets worse.
If you really want to know what time zone a visitor is in, you need to ask.