如何在PHP中动态设置默认时区?

如何在PHP中动态设置默认时区?,php,time,timezone,Php,Time,Timezone,我正在写一些需要设置时区的代码。我使用的是date\u default\u timezone\u set()。我不想这样做,因为其他人可能会在其他时区、城市或州运行此代码。是否有一种方法可以动态地设置它,这样我就不必硬编码该值 我不想要用户的时区。我特别希望能够找到服务器运行所在的时区。用于获取服务器时区。如果服务器在php.ini中正确配置了时区,则根本不需要设置时区。你也不应该。应由服务器管理员正确配置其ini设置。只是不要在PHP代码中设置时区,而是使用服务器配置。否则将覆盖服务器设置。p

我正在写一些需要设置时区的代码。我使用的是
date\u default\u timezone\u set()。我不想这样做,因为其他人可能会在其他时区、城市或州运行此代码。是否有一种方法可以动态地设置它,这样我就不必硬编码该值


我不想要用户的时区。我特别希望能够找到服务器运行所在的时区。

用于获取服务器时区。如果服务器在php.ini中正确配置了时区,则根本不需要设置时区。你也不应该。应由服务器管理员正确配置其ini设置。

只是不要在PHP代码中设置时区,而是使用服务器配置。否则将覆盖服务器设置。php.ini有一个用于时区的

date.timezone字符串 所有日期/时间函数使用的默认时区。在PHP5.4.0之前,只有在没有设置TZ环境变量的情况下,这才有效。如果未明确提及时区,则使用时区的优先顺序在日期\默认\时区\获取()页中进行了说明。有关支持的时区列表,请参阅支持的时区列表


正确配置服务器取决于代码的用户。

您不能。因为PHP是服务器端的,所以它需要服务器时间。如果你想要客户端时间,你必须使用JavaScript。我不管用户的时区是什么,我想要服务器的时区。基本上,我想知道PHP服务器代码运行在哪个时区,因为它可能运行在东海岸或西海岸的服务器上。您必须在每个服务器上设置时区。我见过很多次的建议是使用恒定参考系(例如UTC)来存储时间(甚至只是在服务器上生成)。只要需要向用户实际显示本地时间,就可以将其转换为本地时间。我必须在php.ini文件中这样做,还是可以执行shell_exec(“date+%Z”)并使用它来设置时区?例如,我可以将其返回“MST”对于Mountain Standard Time,但我不认为这是PHP的date\u default\u timezone\u set()参数的有效选项函数。如果没有设置时区该怎么办?服务器用户应该在php ini文件中正确设置时区,原因如下。你的观点很有道理。应该由部署代码的人员来正确设置时区。我只是想在代码中尽可能多地做些事情,让它正常工作,而不必说“去配置你的服务器!”@BigDataBrian完全同意!在我看来,你已经太好了:D但如果没有配置,警告是一个很好的解决方案。