0

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

4 回答 4

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>
于 2012-05-02T08:53:51.543 回答
1

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

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

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

于 2012-05-02T08:51:20.043 回答
0

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

于 2012-05-02T08:47:54.917 回答
0

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

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

于 2012-05-02T08:45:02.460 回答