Javascript 需要的建议:使用服务器时间或用户机器';什么时候了?

Javascript 需要的建议:使用服务器时间或用户机器';什么时候了?,javascript,php,timezone,locale,Javascript,Php,Timezone,Locale,我想制作一个页面,根据一天中的时间,用经典的“早安/晚上好”向用户致意。然而,我明白我不能只获得服务器时间,因为如果,比如说,一个日本用户查看了该页面,它可能会在早上5点收到“下午好”,这显然是不正确的:) 我可以使用PHP/JS获取用户机器中的时间吗?如果可以,我应该查看什么函数?此外,如果需要JS,如何检测用户是否有脚本阻止程序 很抱歉提出这些问题,我刚刚开始学习网络编程。任何帮助都将不胜感激。:) 干杯! -jfabian您可以使用以下方法获取用户的javascript时区: new Da

我想制作一个页面,根据一天中的时间,用经典的“早安/晚上好”向用户致意。然而,我明白我不能只获得服务器时间,因为如果,比如说,一个日本用户查看了该页面,它可能会在早上5点收到“下午好”,这显然是不正确的:)

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

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

干杯!
-jfabian

您可以使用以下方法获取用户的javascript时区:

new Date().getTimezoneOffset() * -1

您可以使用以下方法获取javascript中用户的时区:

new Date().getTimezoneOffset() * -1

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>")
var currentTime=新日期()
var hours=currentTime.getHours()
var minutes=currentTime.getMinutes()
如果(分钟<10)
分钟数=“0”+分钟数
文件。写(“+hours+”:“+minutes+”+”)

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>")
var currentTime=新日期()
var hours=currentTime.getHours()
var minutes=currentTime.getMinutes()
如果(分钟<10)
分钟数=“0”+分钟数
文件。写(“+hours+”:“+minutes+”+”)

我的建议是让您的PHP页面返回UTC时间,例如gmdate() 使用UTC时间,您不必太担心夏令时等问题

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

new Date().getTimezoneOffset() 

或者,对于更高级的时区信息,您可以使用javascript库,请参阅以获取一些想法。

我的建议是让您的PHP页面返回UTC时间,例如使用gmdate()返回UTC时间 使用UTC时间,您不必太担心夏令时等问题

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

new Date().getTimezoneOffset() 

或者,对于更高级的时区信息,您可以使用javascript库,请参阅以获取一些想法。

您应该在发布前真正搜索:您应该在发布前真正搜索:提示:
date\u default\u timezone\u set('UTC')将允许您使用UTC时间和任何未明确指定时区的函数。:)提示:
date\u default\u timezone\u set('UTC')将允许您使用UTC时间和任何未明确指定时区的函数。:)更正-这将为您提供用户的当前时区偏移。巨大的差异。更正-这将为您提供用户当前的时区偏移。差别很大。这是正确的做法。只需在JavaScript中工作,它将始终与用户的时钟相匹配。不需要涉及时区。如果你想让它变得更简单,可以使用像.1这样的库。这是正确的做法。只需在JavaScript中工作,它将始终与用户的时钟相匹配。不需要涉及时区。如果你想让它变得更简单,可以使用像这样的库。