这是我的问题:
echo date('Y-m-d H:i:s');
echo date('Y-m-d H:i:s', mktime());
echo exec('date');
输出结果为:
2012-03-21 08:45:51
2012-03-21 08:45:51
Wed Mar 21 10:45:51 EDT 2012
服务器时间与php date()返回的时间相差2小时;或任何其他PHP日期/时间功能。这是因为服务器时间设置为EST和PHP.INI date.timezone =“America / Denver”
我需要使用date_default_timezone_set来同步这两个,但我事先并不知道有什么区别。
除了调用exec之外,还有其他方法可以获得本地服务器时间吗?
UPD:我知道php.ini设置错误,我可以更改它。问题是这个脚本可以工作,没人知道什么样的服务器。我不能去他们每一个并纠正php.ini文件。我也不知道这些服务器上会有什么时区。我需要一个可以在任何地方使用的动态解决方案。
答案 0 :(得分:2)
您可以更改ini日期时区并打印日期
ini_set('date.timezone', 'America/Los_Angeles');
答案 1 :(得分:2)
Change value of date.timezone from php.ini [Date] and restart your server.
You can get your date.timezone value form-
http://au.php.net/manual/en/timezones.php
For Bangladesh I set in my php.ini [Date]
date.timezone = Asia/Dhaka
You get your php.ini in C:\xampp\php address for XAMP server and Windows.
答案 2 :(得分:0)
OR
一些主持人可以编辑php.ini
在php config
cpanel
答案 3 :(得分:0)
在* nix上,您可以使用格式参数date
来获取所需内容:
date +%z
- 时区(hhmm)date +%:z
- 时区(hh:mm)date +%Z
- 时区缩写(例如“EDT”)进行系统调用(例如echo exec('date +%z');
)将根据date_default_timezone_get绕过任何INI设置。请注意,如果此函数从系统时间读取,则会发出E_WARNING,实际上从PHP 5.4开始,它甚至不允许从中读取 - 特别是因为它不能被依赖。
为了保持一致,无论服务器设置如何,都应在应用程序中使用UTC。为了便于使用,GMT在大多数情况下都接近UTC,因此您可以使用gmdate()
。