在php中让用户自定义时区 正确显示当前时间

php是外国人开发的,所以经常有很多东西不太好用,时间日期就是其中之一,经常直接显示时间日期(例如:date("Y-m-d H: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-12 21:04:25 以下是从DZ中挖出来的完整定制时区的列表代码,可以方便今后的使用了咯。

  <select name="timeoffsetnew">

  <option value="9999" selected="selected">- 使用默认 -</option>

  <option value="-12" >(GMT -12:00) Eniwetok, Kwajalein</option>

  <option value="-11" >(GMT -11:00) Midway Island, Samoa</option>

  <option value="-10" >(GMT -10:00) Hawaii</option>

  <option value="-9" >(GMT -09:00) Alaska</option>

  <option value="-8" >(GMT -08:00) Pacific Time (US & Canada), Tijuana</option>

  <option value="-7" >(GMT -07:00) Mountain Time (US & Canada), Arizona</option>

  <option value="-6" >(GMT -06:00) Central Time (US & Canada), Mexico City</option>

  <option value="-5" >(GMT -05:00) Eastern Time (US & Canada), Bogota, Lima, Quito</option>

  <option value="-4" >(GMT -04:00) Atlantic Time (Canada), Caracas, La Paz</option>

  <option value="-3.5" >(GMT -03:30) Newfoundland</option>

  <option value="-3" >(GMT -03:00) Brassila, Buenos Aires, Georgetown, Falkland Is</option>

  <option value="-2" >(GMT -02:00) Mid-Atlantic, Ascension Is., St. Helena</option>

  <option value="-1" >(GMT -01:00) Azores, Cape Verde Islands</option>

  <option value="0"  >(GMT) Casablanca, Dublin, Edinburgh, London, Lisbon, Monrovia</option>

  <option value="1" >(GMT +01:00) Amsterdam, Berlin, Brussels, Madrid, Paris, Rome</option>

  <option value="2" >(GMT +02:00) Cairo, Helsinki, Kaliningrad, South Africa</option>

  <option value="3" >(GMT +03:00) Baghdad, Riyadh, Moscow, Nairobi</option>

  <option value="3.5" >(GMT +03:30) Tehran</option>

  <option value="4" >(GMT +04:00) Abu Dhabi, Baku, Muscat, Tbilisi</option>

  <option value="4.5" >(GMT +04:30) Kabul</option>

  <option value="5" >(GMT +05:00) Ekaterinburg, Islamabad, Karachi, Tashkent</option>

  <option value="5.5" >(GMT +05:30) Bombay, Calcutta, Madras, New Delhi</option>

  <option value="5.75" >(GMT +05:45) Katmandu</option>

  <option value="6" >(GMT +06:00) Almaty, Colombo, Dhaka, Novosibirsk</option>

  <option value="6.5" >(GMT +06:30) Rangoon</option>

  <option value="7" >(GMT +07:00) Bangkok, Hanoi, Jakarta</option>

  <option value="8" >(GMT +08:00) Beijing, Hong Kong, Perth, Singapore, Taipei</option>

  <option value="9" >(GMT +09:00) Osaka, Sapporo, Seoul, Tokyo, Yakutsk</option>

  <option value="9.5" >(GMT +09:30) Adelaide, Darwin</option>

  <option value="10" >(GMT +10:00) Canberra, Guam, Melbourne, Sydney, Vladivostok</option>

  <option value="11" >(GMT +11:00) Magadan, New Caledonia, Solomon Islands</option>

  <option value="12" >(GMT +12:00) Auckland, Wellington, Fiji, Marshall Island</option>

  </select>
 
或是修改PHP.INC文件
[Date]
; Defines the default timezone used by the date functions
date.timezone =PRC

就行了 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值