JavaScript和php中的日期问题很奇怪


Strange issue in date in javascript and php

我对JavaScript和PHP中的日期感到困惑。

<?php 
$mydate = date('2012-05-02 17:00:00'); 
echo 'Today PHP  --'.$mydate;
$mytimstamp = strtotime($mydate);
echo '<br/>My PHP unix time stamp --'.$mytimstamp;
echo '<br/>'; ?>
<script type="text/javascript">
document.write('My Javascript unix time stamp --'+new Date(Number('<?php echo $mytimstamp;?>')*1000));
</script>

输出

Today PHP -- 2012-05-02 17:00:00
My PHP unix time stamp --1335978000
My Javascript unix time stamp --Wed May 02 2012 22:30:00 GMT+0530 (India Standard Time) 

为什么我在javascript中得到不同的时间????

您获得的时间相同,只是时区不同。

在PHP方面,你有GMT时间,在JavaScript方面你有印度时间。

看起来你来自印度。只要确保您了解时区的概念,并使用时区信息或 GMT/UTC 时间存储时间即可。这样,您应该避免错误地使用来自不同时区的时间戳的问题。如果您知道生成时间的时区,则以适合用户时区的形式显示此类时间变得微不足道。

如果您不更改时区,请像更改代码一样

<script type="text/javascript">
        var d = new Date();
        var offset = d.getTimezoneOffset();
        document.write('My Javascript unix time stamp --'+new Date(Number(<?php echo (intval($mytimstamp));?> + offset*60 )*1000));
</script>

您的 PC 必须设置与运行 PHP 代码的服务器的时区不同的时区。

PHP 日期/时间是使用服务器的设置计算的

,而 JavaScript 日期/时间是使用客户端 PC 设置计算的。

在javascript中取决于你的浏览器。你最好在你的javascript上解码日期格式。您将在不同的浏览器上获得另一个不同的日期。