You have to do this based on time values. The easiest way is probably for the client to send its os.time() value to the server and for the server to compare that with its own os.time() value, dividing that by 3600, and rounding it to the nearest timezone hour offset from UTC+0. Keep in mind this will always be an estimate because you cannot know whether the time settings of the client’s device are entirely correct.
Do you have a particular use case for wanting to estimate the time zone?