Javascript日期函数返回错误的日期(当前PHP时间戳已传递给它)
Javascript date function is returning wrong date (current PHP timestamp is passed to it)
我正在尝试用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日。
您有没有想过自己电脑中时区的差异?我在mongoDB上也遇到了同样的问题,它只是一直把时间向后设置了2个小时。
阿姆斯特丹,可节省一天的照明时间=+2小时。
只需检查你电脑上的时间设置,如果它们正常,就可以在时间上加上或减去几个小时,直到你得到正确的日期。
请注意,它们显示的时间完全相同(05:42:14 UTC
=21:42:14 GMT-0800
)。
根据我的快速搜索,没有什么简单的方法可以告诉JavaScript在其他时区打印日期,而不是在本地时区。
因此,根据您的用例:
-
如果您只想打印当前日期,那么在PHP端生成字符串,时区由您控制。
-
如果你想让
Date
对象包含正确的日期,那么它已经包含了(事实上,当你发布问题时,它是太平洋标准时间21:42)。 -
如果您希望JavaScript保存正确的日期,但也能够在服务器的时区中打印,您可以做的是将服务器的时区和时间一起发送给客户端,然后检测客户端的时区(
var offset = new Date().getTimezoneOffset();
),计算它们的差异,并将从服务器接收的日期加上那么多小时。然后只需使用一些不打印时区的日期格式(这里介绍了许多方法)。
p.S.与你的问题无关,但这是:
$current_date = date("m/d/y H:i:s");
$date = strtotime($current_date) * 1000;
可以替换为:
time() * 1000
相关文章:
- JavaScript JSON关联对象键和值都作为日期时间戳
- 用时间戳获取两个不同日期之间的时间差
- 当转换为Python日期时间时,Node的时间戳落后3分钟
- 我想以时间戳的形式将日期设置为无限
- 时间戳日期&时间格式-应用程序脚本-设置日期和时间格式
- 将正常日期转换为 unix 时间戳
- 时刻.js + 实时戳时间前基于 UTC 来自服务器的日期时间
- 在谷歌图表折线图的x轴上显示日期,而不是时间戳
- JavaScript:获取MySQL时间戳和当前日期之间的天数差
- 如何在JS中从Y-m-d日期获取unix时间戳
- JavaScript将人类可读的日期转换为unix时间戳,然后再转换回来
- 使用 JavaScript 的客户端日期/时间戳一致(考虑时区)
- ArangoDB Foxx 模型日期时间戳不起作用
- 如何从日期/时间戳中减去两个不同的日期
- 获取日期+时间戳
- 如何在每个新条目中包含日期/时间戳
- 用javascript将unix日期时间戳转换为特定时区的时间
- 获取特定格式的日期/时间戳
- 存储过期日期/时间戳的正确方法是什么?
- 什么'这是允许用户在html/javascript中指定一系列日期/时间戳的最干净的方法