如何获取用户的本地时间而不是服务器的时间?

IT技术 php javascript
2021-01-20 15:30:40

如何获取客户端的时间?当我使用date()它时返回服务器的时间。

6个回答

这是一个“PHP”解决方案:

echo '<script type="text/javascript">
var x = new Date()
document.write(x)
</script>';
@SachinKanungo 有点晚了,但对于其他人来说,这是因为 javascript 在浏览器中的客户端执行,它返回的时间与客户端的时间无关。另一方面,PHP 代码在服务器上执行,这样您就可以获得服务器时间。
2021-03-22 15:30:40
如果脚本要在服务器上执行,js 怎么知道客户端 pc 上的时间。
2021-04-07 15:30:40
为什么我收到这个错误 Parse error: syntax error, unexpected T_ECHO
2021-04-08 15:30:40
您可以采用此解决方案并将其编写为这样的 php 函数: function the_local_time ($time) { ?> <script type="text/javascript"> var myDate = new Date('<?php echo $time; ?>') document.write(myDate.toLocaleString()) </script> <?php }
2021-04-12 15:30:40

正如大家所提到的,PHP 只显示服务器端时间。

对于客户端,您需要 Javascript,如下所示应该可以解决问题。

var currentTime = new Date();
var hours = currentTime.getHours();
var minutes = currentTime.getMinutes();

if (minutes < 10) {
    minutes = "0" + minutes;
}

document.write("<b>" + hours + ":" + minutes + " " + "</b>");

如果您想要 AM/PM 后缀,则应该可以使用以下内容:

var currentTime = new Date();
var hours = currentTime.getHours();
var minutes = currentTime.getMinutes();

var suffix = "AM";

if (hours >= 12) {
    suffix = "PM";
    hours = hours - 12;
}

if (hours == 0) {
    hours = 12;
}

if (minutes < 10) {
    minutes = "0" + minutes;
}

document.write("<b>" + hours + ":" + minutes + " " + suffix + "</b>");

这是您可能会遇到的其他 JavaScriptDateTime函数的列表

所以服务器向客户端发送一个时间标头,但客户端没有向服务器发送?为什么?
2021-04-01 15:30:40
stackoverflow.com/a/62344221/12910765这可能有助于在访问者的时区显示 php 现在时间
2021-04-04 15:30:40

您可以使用 IP 地址地理定位来确定用户所在的国家/地区,然后使用它。

但是使用 Javascript 或让用户选择时区可能会更好。

由于 PHP 在服务器端运行,因此您无法从 PHP 访问客户端时间:PHP 对浏览器了解不多——并且您可以运行 PHP 脚本而无需从浏览器调用。

但是您可以从 Javascript (在客户端执行)获取它,然后通过 Ajax 请求将它传递给 PHP,例如。


这里有几个问题+答案可能会帮助您入门:

好吧,客户端可能只是通过 Header 或其他方式抛出它的时间,毕竟服务器也会这样做。
2021-04-04 15:30:40

据我所知,PHP 只是服务器端。

您可能想使用 JavaScript。