Php strotime函数在不同的服务器上返回不同的值
我正在制作一个日历,它可以在本地主机上完美运行,但不能在我的服务器站点上运行。 我想我的问题是因为时间问题Php strotime函数在不同的服务器上返回不同的值,php,strtotime,Php,Strtotime,我正在制作一个日历,它可以在本地主机上完美运行,但不能在我的服务器站点上运行。 我想我的问题是因为时间问题 while($rows = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC)) { $start = strtotime($rows['DATEFROM']) * 1000; $end = strtotime($rows['DATETO']) * 1000; $calendar[] = array('ID
while($rows = sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC))
{
$start = strtotime($rows['DATEFROM']) * 1000;
$end = strtotime($rows['DATETO']) * 1000;
$calendar[] = array('ID' =>$rows['ID'],
'start' => "$start",
'end' => "$end"
);
这部分代码给出了
"start":"1528588800000","end":"1528675200000"
所以,事件似乎在日历中,但在我的服务器站点中,我使用IIS服务器,它提供
"start":"1528578000000","end":"1528664400000"
因此,事件似乎并不完美
我搜索了一下,你们大多数人都说它发生在时区,但我的本地主机时区和服务器站点时区是一样的。它是美国/弗吉尼亚州
我知道localhost中的php.ini文件表示timezone=UTC,但我不知道我的IIS服务器时区(当我搜索ISS服务器时使用服务器站点时间)
localost映像:
服务器站点映像:
数据库:
您的服务器位于不同的位置和时区。如果有必要,你可以简单地计算时间,然后加减差。我在1和1互联网上也有类似的问题。我怀疑其中一个是你提到的
UTC
,另一个是东部时间(弗吉尼亚州)。它们相差4小时,这正是您在这里所期望的,因为UTC比东部时间早4小时。也许可以将php.ini中localhost
的时区更改为America/New_York
,以便它们匹配。那么如何将ISS服务器站点“America”更改为“UTC”,因为UTC时区在php.ini
中给出了正确的答案集date.timezone
。这是基于SQL查询的结果吗?那么,在PHP配置中设置时区可能还不够——您可以共享原始值吗?