在php中让用户自定义时区 正确显示当前时间
2008-06-25 16:13
796 查看
php是外国人开发的,所以经常有很多东西不太好用,时间日期就是其中之一,经常直接显示时间日期(例如:date("Y-m-dH:i:s"))默认为UTC时间,表现是和北京时间差8个小时,因此我们需要将其+8个小时,原理是我们正好位于时区的东8区,但是这个问题是受到php.ini配置的date.timezone影响,当我们将其设置为Asia/Shang或Asia/Chongqing或者其他的东8区,显示出来的将是北京时间,或者在输出时间之前使用date_default_timezone_set()设置时区,也能正确的显示北京时间,问题是这样做都是相当的不灵活。update:经测试,使用gmdate("U")是不正确的获取方式,与time()无别,只有使用time()-date('Z')才能做到获得UTC时间戳!特此更正,向各位致歉!谢谢支持。--2008-3-1221:04:25以下是从DZ中挖出来的完整定制时区的列表代码,可以方便今后的使用了咯。
<selectname="timeoffsetnew"> <optionvalue="9999"selected="selected">-使用默认-</option> <optionvalue="-12">(GMT-12:00)Eniwetok,Kwajalein</option> <optionvalue="-11">(GMT-11:00)MidwayIsland,Samoa</option> <optionvalue="-10">(GMT-10:00)Hawaii</option> <optionvalue="-9">(GMT-09:00)Alaska</option> <optionvalue="-8">(GMT-08:00)PacificTime(US&Canada),Tijuana</option> <optionvalue="-7">(GMT-07:00)MountainTime(US&Canada),Arizona</option> <optionvalue="-6">(GMT-06:00)CentralTime(US&Canada),MexicoCity</option> <optionvalue="-5">(GMT-05:00)EasternTime(US&Canada),Bogota,Lima,Quito</option> <optionvalue="-4">(GMT-04:00)AtlanticTime(Canada),Caracas,LaPaz</option> <optionvalue="-3.5">(GMT-03:30)Newfoundland</option> <optionvalue="-3">(GMT-03:00)Brassila,BuenosAires,Georgetown,FalklandIs</option> <optionvalue="-2">(GMT-02:00)Mid-Atlantic,AscensionIs.,St.Helena</option> <optionvalue="-1">(GMT-01:00)Azores,CapeVerdeIslands</option> <optionvalue="0">(GMT)Casablanca,Dublin,Edinburgh,London,Lisbon,Monrovia</option> <optionvalue="1">(GMT+01:00)Amsterdam,Berlin,Brussels,Madrid,Paris,Rome</option> <optionvalue="2">(GMT+02:00)Cairo,Helsinki,Kaliningrad,SouthAfrica</option> <optionvalue="3">(GMT+03:00)Baghdad,Riyadh,Moscow,Nairobi</option> <optionvalue="3.5">(GMT+03:30)Tehran</option> <optionvalue="4">(GMT+04:00)AbuDhabi,Baku,Muscat,Tbilisi</option> <optionvalue="4.5">(GMT+04:30)Kabul</option> <optionvalue="5">(GMT+05:00)Ekaterinburg,Islamabad,Karachi,Tashkent</option> <optionvalue="5.5">(GMT+05:30)Bombay,Calcutta,Madras,NewDelhi</option> <optionvalue="5.75">(GMT+05:45)Katmandu</option> <optionvalue="6">(GMT+06:00)Almaty,Colombo,Dhaka,Novosibirsk</option> <optionvalue="6.5">(GMT+06:30)Rangoon</option> <optionvalue="7">(GMT+07:00)Bangkok,Hanoi,Jakarta</option> <optionvalue="8">(GMT+08:00)Beijing,HongKong,Perth,Singapore,Taipei</option> <optionvalue="9">(GMT+09:00)Osaka,Sapporo,Seoul,Tokyo,Yakutsk</option> <optionvalue="9.5">(GMT+09:30)Adelaide,Darwin</option> <optionvalue="10">(GMT+10:00)Canberra,Guam,Melbourne,Sydney,Vladivostok</option> <optionvalue="11">(GMT+11:00)Magadan,NewCaledonia,SolomonIslands</option> <optionvalue="12">(GMT+12:00)Auckland,Wellington,Fiji,MarshallIsland</option> </select>
或是修改PHP.INC文件
[Date]
;Definesthedefaulttimezoneusedbythedatefunctions
date.timezone=PRC
就行了
相关文章推荐
- PHP 显示当前年月日的方法集合时间戳转化为时间格式
- openwrt 显示当前时间及更改时区
- 如何利用PHP会话显示出当前在线的用户
- 根据用户时区显示当地时间 php+javascript
- 实时显示当前时间php代码
- php -- 显示当前时间
- openwrt 显示当前时间及更改时区
- php获取正确的当前时间
- PHP实现显示用户上一次登录时间的方法
- .每隔5秒查看hadoop用户是否登录,如果登录,显示其登录并退出;否则,显示当前时间,并说明hadoop尚未登录
- 当PHP获取的时间不正确时 先设置时区
- 自定义服务_显示当前时间
- PHP会话显示出当前在线的用户
- 【PHP自定义显示系统级别的致命错误和用户级别的错误】
- php解决时间不正确问题,设置中国时区
- javascript+php实现根据用户时区显示当地时间的方法
- JSF1.2中使用rich:datatable组件,在rich:column中显示日期和时间时时区信息不正确
- php获取正确的当前时间
- php中显示当前时间
- PHP-显示当前时间-date()