strtotime('2018-09-20 16:49:54')
我抛出第一个论点。该函数对时区服务器的设置很敏感。我阅读了手册 - 我不明白。我们抛出的日期被服务器感知为零子午线的日期,并将服务器上配置的本地时间添加到其中,或者将日期视为本地时间,并且减去该本地时间以获得零子午线的时间子午线?
在一台服务器上响应 1537487394 在另一台服务器上 1537451394
strtotime('2018-09-20 16:49:54')
我抛出第一个论点。该函数对时区服务器的设置很敏感。我阅读了手册 - 我不明白。我们抛出的日期被服务器感知为零子午线的日期,并将服务器上配置的本地时间添加到其中,或者将日期视为本地时间,并且减去该本地时间以获得零子午线的时间子午线?
在一台服务器上响应 1537487394 在另一台服务器上 1537451394
对,就是这样。
该函数的结果
strtotime()
取决于 PHP 配置(指令date.timezone
)中设置的时区。例如,如果您有一个时区Europe/London
,那么在夏天它将是UTC+01:00
。PHP 检测到传递的日期在这个时区中,并UTC
减去 1 小时以将其转换为。结果,我们得到 unixtime 等于1537458594。如果我们在任何在线转换器中将此时间戳转换为常规日期,那么我们将得到 "2018-09-20 15:49:54 ",即比我们在参数中传递的时间少 1 小时
strtotime()
。如果您在本地服务器上调用该函数date('Y-m-d H:i:s')
并将收到的 unixtime 替换为第二个参数,您将已经获得日期,同时考虑到您的本地时区:“2018-09-20 16:49:54 ”。我还将假设在服务器上设置了以下时区:
UTC-07:00
,UTC+03:00
。