【发布时间】:2021-10-21 22:15:34
【问题描述】:
我所做的是使用 JavaScript 获取客户端的本地时间,然后使用 Ajax 将结果发送到 php。我在 php 中对其进行操作,以在客户端本地时间显示某些时间戳的值。但是,我一直在显示服务器时间。
这是我的代码:
JavaScript
var now = new Date().toLocaleString();
xmlhttpupdates.open("POST", "updates.php", true);
xmlhttpupdates.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttpupdates.send("localnow="+now);
PHP
$localnow = $_POST["localnow"];
foreach ($allmsgsz as $allmsgs){
$timestamp = strtotime($allmsgs[4]);
$eventtimediff = strtotime($localnow) - $timestamp;
$currentlocaltime = strtotime($localnow) - $eventtimediff;
$time = date("Y-m-d (h:i a)",$currentlocaltime);
echo $time;
}
【问题讨论】:
-
看来您需要查看“进行一些计算”的 PHP 代码。它可能不会使用从客户端获得的输入,并自行确定日期。这当然是你描述的行为所暗示的。请注意,时间在内部存储为通用数值,并应用时区进行格式化。如果您以该格式发送日期,则服务器将不知道时区是什么,除非您也发送该时区。您也可以只向服务器发送和从服务器发送内部值,并在返回后应用时区。
-
谢谢。这条线索确实有助于让它发挥作用。
标签: javascript php ajax timestamp localtime