RES: [PHP] Re: User Timezone

2012-10-21 Thread Samuel Lopes Grigolato
Coincidentally, TODAY I had to adjust my clock one hour forward because of DST 
(poor sleep =[). No so easy-to-solve problem, after all...

-Mensagem original-
De: Matijn Woudt [mailto:tijn...@gmail.com] 
Enviada em: domingo, 21 de outubro de 2012 10:30
Para: Maciek Sokolewicz
Cc: Karl DeSaulniers; php-general
Assunto: Re: [PHP] Re: User Timezone

On Sun, Oct 21, 2012 at 12:01 PM, Maciek Sokolewicz 
 wrote:
> On 21-10-2012 01:11, Karl DeSaulniers wrote:

 Thanks for the response. Yes, for the US I plan on calculating by 
 state, but this website is not geared to just the US.
 So I am looking for a solution that lets me also calculate by 
 country/region.
 Was looking on google and found geoip, but not sure if this will do 
 the job I am looking for.
 Anyone with experience on geoip that can send pointers?

 Thanks,


 Best,
 Karl DeSaulniers
 Design Drumm
 http://designdrumm.com
>>>
>>>
>>>
>>> Geo IP is based on IP, and I must warn you that IP data is not 
>>> always accurate. Especially here in Europe, companies that are based 
>>> in multiple countries sometimes only register their IPs in a single 
>>> country, and share them between all the countries they are active in.
>>> This will give you wrong data from GeoIP. The time difference will 
>>> only be 1 hour at max, but still.
>>
>>
>>
>> That was what my own suspicions were leading to.
>> I am familiar with the fact that ips can be spoofed.
>> Thanks for the corroboration.
>>
>> Best,
>>
>> Karl DeSaulniers
>> Design Drumm
>> http://designdrumm.com
>>
>
> As Bart said, IP is not ideal for this situation.
>
> Since you do have information about the location of that person (as in 
> country and possible state), you can find out the timezone via a 
> static database.
>
> The HTML5 geolocation tool is nice, and would certainly help a lot! 
> However, be aware of the fact that it only works if there is the 
> device on which the browser runs actually has the ability to find out 
> its location. Many smartphones have GPS chips, but most PCs don't. 
> Asking a PC "where are you located?" the PC will answer "How should I know?".
>
> Luckily for you, the way of country and state is pretty easy. I've 
> handed you a list to find it in the USA. For most countries in the 
> world, there's a simple 1:1 mapping of timezone and country 
> (http://en.wikipedia.org/wiki/List_of_time_zones_by_country), there 
> are however 21 countries which have multiple timezones. In these 
> cases, you'll need extra information to be able to distinguish between them.
>
> For the USA, you already have a way.
> For (ex-)colonical islands and such (such as for France), you could 
> always add them to the country list:
> - France
> - France (Marquesas Islands)
> - France (Gambier)
> etc.
> Thus treating them as separate countries for your timezone db.
>
> In Russia, Canada, Australia, New Zealand, Brasil, Indonesia, 
> Kiribati, Mexico,Congo, Ecuador, Micronesia, Kazakhstan and Mongolia 
> you'll need to know their province / state to more accurately assess the 
> ideal timezone.
>
> So for most countries, it's a simple 1:1 translation. For the above 
> countries, you'll need some extra info, and translate further based on that.
> You should be able to find the info required yourself, it just takes a 
> while to collect it.
>
> Alternatively, and this is the most simple way; since you're asking 
> people for their country and such, simply also ask them about their 
> timezone. Don't bother automating and putting a heck of a lot of time 
> into hard to realize solutions, when you can ask a very simple and 
> easy-to-answer question to the browser instead. :)
>
> - Tul
>

Don't forget that some countries have DST, and some don't. And those that have 
DST, all use different dates.. So in to keep a static database you would also 
need to have DST info from all countries.

- Matijn

--
PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: 
http://www.php.net/unsub.php



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: RES: [PHP] Re: User Timezone

2012-10-20 Thread Karl DeSaulniers

Dont know how I would get longitude and latitude of my users.
Also, not using HTML5 except for layout reasons. Liquid canvas.
So I am using HTML 4 transitional for structure.

Thanks for the response! I will at least look into your solution.
Couldn't hurt. :)

Best,
Karl


On Oct 20, 2012, at 7:35 AM, Samuel Lopes Grigolato wrote:


Have you tried Google Timezone API?
(https://developers.google.com/maps/documentation/timezone/)

I don't know if it's free to use, probably not.

You may note that you need user's longitude/latitude to query this  
API. A

solution is to query Google Places API
(https://developers.google.com/places/) based on the State name, or  
use the
HTML5 Geolocation API (http://www.w3schools.com/html/html5_geolocation.asp 
,

I won't recommend as AFAIK it is not stable, others could correct me).

Hope it helps.

Cheers,
Samuel.

-Mensagem original-
De: Maciek Sokolewicz [mailto:tula...@gmail.com] Em nome de Maciek
Sokolewicz
Enviada em: sábado, 20 de outubro de 2012 09:24
Para: Karl DeSaulniers
Cc: php-general
Assunto: [PHP] Re: User Timezone

On 20-10-2012 09:39, Karl DeSaulniers wrote:

Hello all,
Happy weekend. Hoping you can help me with an age old question.
I am trying to get a users timezone for a purchase online.
I know that php is not really able to get a timzone of a user because
its a server side execution with the date functions.
But I wanted to get a little help on my work around. I am hoping
someone can help. TIA

I have a form that a user must fill out in order to purchase  
anything.

On this form they are required to put their city, state, country and
zip code.
These are all required fields.

Now, I know there is a way to get a timezone offset if you have a
location to offset.
So is there a way based on the fields provided that I can get that
offset for each user?

(The users have to put a correct city, state, country and zip in  
order

to get there purchase.
This address has to match their paypal or cc address in order to
purchase as well.
So I know there will still be a margin of error with user manipulated
info. So that is moot point for now.)

My thoughts are to get a timezone offset based on the country and zip
code, with a backup check of city state country zip.
I just don't know where to start looking for how to get the timezone
or UTC location based on country and zip or city state country zip.



Hi Karl,

so basically what you're looking for is a database map between  
timezone and

country/state/zip.

Did you try to google such a thing?

One of the first posts I found was a StackOverflow question about  
this; one
of the answers mentioned just such a database on Tom Boutell's  
website (the
same person who created the GD library [used for image-creation in  
php]):
http://www.boutell.com/zipcodes/ It includes states, cities, zip  
codes, etc.

for the USA. Since you specifically mentioned you want to find it "by
state", it means you're mainly focussing on the USA (barely any other
country even bothers with states).

Apart from the above data, I'm sure you can find more on google.

Good luck.
- Tul


--
PHP General Mailing List (http://www.php.net/) To unsubscribe, visit:
http://www.php.net/unsub.php




Karl DeSaulniers
Design Drumm
http://designdrumm.com


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



RES: [PHP] Re: User Timezone

2012-10-20 Thread Samuel Lopes Grigolato
Have you tried Google Timezone API?
(https://developers.google.com/maps/documentation/timezone/)

I don't know if it's free to use, probably not.

You may note that you need user's longitude/latitude to query this API. A
solution is to query Google Places API
(https://developers.google.com/places/) based on the State name, or use the
HTML5 Geolocation API (http://www.w3schools.com/html/html5_geolocation.asp,
I won't recommend as AFAIK it is not stable, others could correct me).

Hope it helps.

Cheers,
Samuel.

-Mensagem original-
De: Maciek Sokolewicz [mailto:tula...@gmail.com] Em nome de Maciek
Sokolewicz
Enviada em: sábado, 20 de outubro de 2012 09:24
Para: Karl DeSaulniers
Cc: php-general
Assunto: [PHP] Re: User Timezone

On 20-10-2012 09:39, Karl DeSaulniers wrote:
> Hello all,
> Happy weekend. Hoping you can help me with an age old question.
> I am trying to get a users timezone for a purchase online.
> I know that php is not really able to get a timzone of a user because 
> its a server side execution with the date functions.
> But I wanted to get a little help on my work around. I am hoping 
> someone can help. TIA
>
> I have a form that a user must fill out in order to purchase anything.
> On this form they are required to put their city, state, country and 
> zip code.
> These are all required fields.
>
> Now, I know there is a way to get a timezone offset if you have a 
> location to offset.
> So is there a way based on the fields provided that I can get that 
> offset for each user?
>
> (The users have to put a correct city, state, country and zip in order 
> to get there purchase.
> This address has to match their paypal or cc address in order to 
> purchase as well.
> So I know there will still be a margin of error with user manipulated 
> info. So that is moot point for now.)
>
> My thoughts are to get a timezone offset based on the country and zip 
> code, with a backup check of city state country zip.
> I just don't know where to start looking for how to get the timezone 
> or UTC location based on country and zip or city state country zip.
>

Hi Karl,

so basically what you're looking for is a database map between timezone and
country/state/zip.

Did you try to google such a thing?

One of the first posts I found was a StackOverflow question about this; one
of the answers mentioned just such a database on Tom Boutell's website (the
same person who created the GD library [used for image-creation in php]):
http://www.boutell.com/zipcodes/ It includes states, cities, zip codes, etc.
for the USA. Since you specifically mentioned you want to find it "by
state", it means you're mainly focussing on the USA (barely any other
country even bothers with states).

Apart from the above data, I'm sure you can find more on google.

Good luck.
- Tul


--
PHP General Mailing List (http://www.php.net/) To unsubscribe, visit:
http://www.php.net/unsub.php



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php