所需建议:使用服务器时间或用户机器的时间


Advice needed: Use server time or user machine's time?

我想制作一个页面,根据一天中的时间,用经典的"早安/晚上"向用户打招呼。但是,我知道我不能只获得服务器时间,因为例如,如果日本用户查看了该页面,它可能会在凌晨 5 点收到"下午好",这显然是不正确的:)

我可以使用 PHP/JS 获取用户机器中的时间吗?如果是这样,我应该看什么功能?另外,如果需要 JS,如何检测用户是否具有脚本阻止程序?

很抱歉菜鸟问题,我刚刚开始学习网络编程。任何帮助将不胜感激。:)

干杯!- 杰法比安

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>")

您可以使用以下命令在 JavaScript 中获取用户的时区:

new Date().getTimezoneOffset() * -1

我的建议是让你的PHP页面返回UTC时间,例如使用gmdate()请参阅在 PHP 中使用 UTC 时间获取 UTC 时间,您不必担心夏令时等事情。

然后在你的javascript中,你将确定用户的时区偏移量。你可以使用

new Date().getTimezoneOffset() 

或者对于更高级的时区内容,您可以使用JavaScript库,请参阅如何使用jquery获取用户时区?以获取一些想法。