Strtotime函数在不同的服务器上返回不同的值

时间:2018-06-19 20:13:16

标签: php strtotime

我正在制作日历,它可以在localhost上完美运行,但不能在我的服务器站点上运行。 我认为我的问题是由于strtotime而发生的。

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文件说时区= UTC,但我不知道我的IIS服务器时区(当我搜索ISS服务器时使用服务器站点时间)

本地图片: https://i.stack.imgur.com/ZwMgV.jpg

服务器站点图像: https://i.stack.imgur.com/nSNdQ.jpg

数据库: https://i.stack.imgur.com/IEs5m.jpg

1 个答案:

答案 0 :(得分:0)

您的服务器位于不同的位置和不同的时区。如果必须的话,您可以简单地获取时间并增加或减去差值。我在1and1互联网上也遇到了类似的问题。