ID:               49185
 Updated by:       der...@php.net
 Reported By:      ryan14 at mail dot com
 Status:           Wont fix
 Bug Type:         Feature/Change Request
 Operating System: Windows/Linux
 PHP Version:      5.3.0
 New Comment:

If you're in a one-timezone-only country such as the UK, you can simply
do:

<?php
$ids = DateTimezone::listIdentifiers( DateTimeZone::PER_COUNTRY, 'GB'
);
echo date_create( $ids[0] )->format( DateTime::RFC2822 ), "\n";
?>

http://geonames.org provides a free database that can map cities to
timezones as well.


Previous Comments:
------------------------------------------------------------------------

[2009-08-07 01:51:51] ras...@php.net

You are underestimating how complicated that problem is.  The easiest
and most accurate way to do this is to simply have users tell you which
timezone they are in and set that in their profile.

If you want to do it automatically you need a huge geoip database to
get the ip to a lat/lon and then once you have that you need a huge geo
database to turn the lat/lon into a timezone.  We can't possible include
these with PHP, and they would be out of date in weeks.  

What we do provide, however, is the base functionality to make it easy
to connect to services that have these databases.  For example, we have
a geoip extension in pecl. See http://pecl.php.net/geoip and the example
of it in action here: http://geoip.pidgets.com
Once you have the lat/lon you can query one of the online geo apis. 
Like this one:
http://gws.maps.yahoo.com/FindLocation?q=35,-100&flags=T&gflags=R

That turns lat/lon 35,-100 into a timezone (among other things).  But,
a geoip lookup is no usually very accurate.  And in some cases wildly
inaccurate.

------------------------------------------------------------------------

[2009-08-07 01:36:05] ryan14 at mail dot com

Description:
------------
PHP doesn't have a feature to display the time and date according to
the country ip address. For example:

Person has a video sharing website

Person uploads video and video says it was uploaded at 7 Jan 2009
5.01pm using the USA based server's clock time and date

If a person from the UK looks at the video details, they will see the
date and time in USA time, not UK time.

So PHP should have a Global date and time feature where when a video is
uploaded to a server the date/time is displayed using the server's time,
but if a person from another country views it then it will detect their
ip address and display their country's date and time on the uploaded
video details.



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=49185&edit=1

Reply via email to