Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript日期函数返回错误的日期(当前PHP时间戳已传递给它)_Javascript_Php_Date - Fatal编程技术网

Javascript日期函数返回错误的日期(当前PHP时间戳已传递给它)

Javascript日期函数返回错误的日期(当前PHP时间戳已传递给它),javascript,php,date,Javascript,Php,Date,我正在尝试用javascript获取当前服务器日期时间。所以我将php日期时间戳传递给javascript日期函数,但javascript的日期相差一天。 下面是我的代码: function showRemaining() { <?php $current_date = date("m/d/y H:i:s"); $date = strtotime($current_date) * 1000;

我正在尝试用javascript获取当前服务器日期时间。所以我将php日期时间戳传递给javascript日期函数,但javascript的日期相差一天。 下面是我的代码:

function showRemaining() {
            <?php
             $current_date = date("m/d/y H:i:s");
             $date = strtotime($current_date) * 1000;
            ?>
            alert('<?php echo $current_date;?>'); //alerts 12/04/15 05:42:14            
            var now = new Date(<?php echo $date;?>);
            alert(now); //alerts Thu Dec 03 2015 21:42:14 GMT-0800 (Pacific Standard Time)
    }
函数showlaining(){
警报(“”);//警报12/04/15 05:42:14
var now=新日期();
警报(现在);//警报周四2015年12月3日21:42:14 GMT-0800(太平洋标准时间)
}

我想让它显示今天的日期,即12月4日。

你有没有考虑过自己电脑中时区的差异?我在mongoDB上也遇到了同样的问题,它只是一直把时间往后拨了2个小时

阿姆斯特丹与日光节约=+2小时


只需检查电脑上的时间设置,如果没有问题,可以从时间中加上或减去几个小时,直到获得正确的日期。

请注意,两者显示的时间完全相同(
05:42:14 UTC
=
21:42:14 GMT-0800

基于我的快速搜索,没有简单的方法告诉JavaScript在本地时区以外的其他时区打印日期

因此,根据您的用例:

  • 如果您只想打印当前日期,那么在PHP端生成字符串,时区在您的控制之下

  • 如果您希望
    Date
    对象包含正确的日期,那么它已经包含了正确的日期(当您发布问题时,实际上是PST中的21:42)

  • 如果希望JavaScript保存正确的日期,但也能够在服务器的时区中打印它,那么可以将服务器的时区与时间一起发送到客户端,然后检测客户端的时区(
    var offset=new date().getTimezoneOffset();
    ),计算它们之间的差异,并在从服务器收到的日期的基础上加上这么多小时。然后只需使用一些不打印时区的日期格式(描述了许多方法)

  • 附言与你的问题无关,但这:

    $current_date=日期(“m/d/y H:i:s”);
    $date=strottime($current_date)*1000;
    
    可替换为:

    time() * 1000
    

    适当设置时区@MyWay我的时区在PHP中被适当地设置为date_default_timezone_set('America/Toronto');正如我在上面的问题中已经指出的那样,PHP根据时区集(即12月4日)为我提供了正确的时间,但在将其传递给javascript日期对象时,它为我提供了12月3日。这就是我的问题。看到这个我希望它能帮助你