我正在尝试在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)
}
我希望它显示今天的日期,即12月4日。
答案 0 :(得分:0)
您是否考虑过自己电脑中时区的差异?我和mongoDB有同样的问题,它只是将时间设置为2小时。
阿姆斯特丹的日光照明= + 2小时。
只需在您的电脑上检查您的时间设置,如果它们没问题,请在您获得正确日期之前的几个小时内添加或减去。
答案 1 :(得分:0)
请注意,它们都显示完全相同的时间(05:42:14 UTC
= 21:42:14 GMT-0800
)。
根据我的快速搜索,没有简单的方法告诉JavaScript在其他时区打印日期,而不是本地时区。
因此,根据您的使用情况:
如果您只想打印当前日期,请在PHP端生成字符串,时区在您的控制之下。
如果您希望Date
对象包含正确的日期,那么它已经存在(当您发布问题时,实际上是太平洋标准时间21:42)。
如果您希望JavaScript保持正确的日期,但也能够在您的服务器时区中打印它,您可以做的是将服务器的时区与时间一起发送给客户端,然后检测客户端的时区(var offset = new Date().getTimezoneOffset();
),计算它们的差异,并将这几个小时添加到从服务器收到的日期。然后只使用一些不打印时区的日期格式(描述here的许多方法。)
P.S。与你的问题无关,但是这个:
$current_date = date("m/d/y H:i:s");
$date = strtotime($current_date) * 1000;
可以替换为:
time() * 1000