为什么在PHP中通过这两种方式呈现时间的不同输出?

时间:2015-05-22 03:02:16

标签: javascript php

我想用$time和javascript时间

显示同一时间

代码

<?php
$today = date('Y-m-d');
$time = date('H:i:s');
$current = strtotime($today);
$final = date("d/Y/m", strtotime("-2 month", $current));
echo $final.'<br />';
echo $today.'<br />';
echo $time;
?>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = Date();
</script>

他们显示不同的时间

22/2015/03

2015-05-22

02:56:22

Fri May 22 2015 10:56:22 GMT+0800 (Malay Peninsula Standard Time)

我指的是不同的时间,并且正在使用我的http://localhost。 为什么这两次不同?

3 个答案:

答案 0 :(得分:1)

通常答案只是PHP是服务器端而JS是客户端这一事实,两个时区通常不同,但你提到这是在你的if (date_default_timezone_get()) { echo 'date_default_timezone_set: ' . date_default_timezone_get() . '<br />'; } if (ini_get('date.timezone')) { echo 'date.timezone: ' . ini_get('date.timezone'); } ,所以对这种差异的解释在于为您的PHP配置保存了一个默认时区,与您自己的时区不同。您可以使用

验证这一点
IndexOptions Type=text/plain 

<强> Reference

当您运行该代码时,您将看到PHP告诉您的时区不是您客户端上的时区。您可以使用 date_default_timezone_set 以及其他方法匹配这两者。

答案 1 :(得分:0)

PHP的日期函数格式化日期/时间。 Date()是一个JavaScript对象。

http://php.net/manual/en/function.date.php https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

PHP日期将反映服务器的日期,JavaScript日期将反映客户端/浏览器的日期。

区域设置也可能会有所不同并影响演示。 http://en.wikipedia.org/wiki/Locale

答案 2 :(得分:0)

这里有两件事你需要考虑。

1.Php执行的返回时间或根据时区的时间如果与日期功能一起使用,则意味着您可以使用php日期功能并根据您的要求获取时间。

2.但是在javascript的情况下,除非您使用getTimezoneOffset

,否则您将始终获得当地机器的时间

现在满足您的要求如果您希望在demo div中添加相同的时间,您可以使用php日期函数和javascript

所以它可以像

那样完成
<script>
document.getElementById("demo").innerHTML = '<?php echo date("m d y");?>';
</script>

或使用您已有的日期和时间变量