javascript和php中日期的奇怪问题

时间:2012-05-02 08:41:00

标签: php javascript date

我在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中获得不同的时间????

4 个答案:

答案 0 :(得分:1)

除了不同的时区外,你得到的时间相同。

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

看起来你来自印度。只需确保您了解时区的概念,并将时间与时区信息或GMT / UTC时间一起存储。这样就可以避免错误地使用来自不同时区的时间戳。如果你知道生成它的时区,那么以适合用户时区的形式显示这样的时间就变得微不足道了。

答案 1 :(得分:1)

如果你不改变你的时区而不是改变你的代码,比如

<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>

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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