我刚刚编写了一段代码来显示网页中的服务器时间。目前我只有一台机器,所以我无法测试代码是否正常工作。
有没有办法告诉浏览器使用与操作系统中配置的时间配置不同的时间配置?我已经使用Firefox的插件来测试不同的语言环境,我想知道是否有类似的时间测试选项。
感谢。
答案 0 :(得分:103)
为单独的Chrome用户个人资料创建新的空目录。例如。与
mkdir ~/chrome-profile
指定TZ
环境变量。您可以在TZ列中看到有效的时区,例如here。
要启动Chrome,请使用以下命令:
TZ='US/Pacific' open -na "Google Chrome" --args "--user-data-dir=$HOME/chrome-profile"
TZ='US/Pacific' google-chrome "--user-data-dir=$HOME/chrome-profile"
答案 1 :(得分:16)
不幸的是,JavaScript只知道当前时区,因为它是由操作系统设置的。没有任何工具可以让Date
对象在特定上下文中使用不同的时区。有some libraries个时区转换,但这对您提出的问题没有帮助。
在Linux,Mac OSX和其他* NIX系统上,您可以设置TZ
环境变量。有关详细信息,请参阅Benedikt Köppel's answer。
但是,Windows上没有此功能。 某些 Windows程序可能会接收到TZ环境变量,但那些不会正确解释它们,因为它们没有连接到支持IANA时区名称。有关此here和here的更多信息。
答案 2 :(得分:8)
关于流行的需求(开玩笑!),解释。
Google Chrome会读取环境变量以获取其运行的时区。显然,Chrome的所有实例都共享该值(未经过测试)。为了强制时区,我们需要a)将环境变量设置为我们想要的时区,b)终止Chrome的所有现有实例,c)打印当前时区进行确认,以及d)使用预期的时区启动Chrome。
以下shell脚本使用OS X进行测试,但也适用于其他人。
export TZ='US/Pacific'
killall Chrome
date
open /Applications/Google\ Chrome.app
答案 3 :(得分:4)
在Windows中更改时,Chrome似乎会立即更新其TimeZone。 Firefox似乎在启动时存储系统的时区值。
使用Visual Studio,看起来你可以把它放在头上。似乎只在首次启动调试过程时才会读取时区。所以在我的情况下,我所做的是将TimeZone设置为,例如,东部标准时间。启动Visual Studio调试器。然后我将TimeZone更改为,例如太平洋标准时间。此时服务器仍处于东部时区,而我的浏览器位于太平洋时区。现在我能够很好地测试客户端浏览器的行为。
如果您想在日本测试客户端,那么只需更新您的TimeZone,浏览器就会跟随它。 只要您不重新启动调试过程,您的服务器时区就不会改变。另外只是改变时间(而不是时区)不起作用。
答案 4 :(得分:2)
也许会帮助某人。您可以使用以下步骤更改Windows 10的时区:
P.s。根据@Oscar Acevedo的评论,此答案不太正确。适用于测试不同时区。
答案 5 :(得分:2)
完成后,转到任何网站并打开开发人员工具并通过执行以下命令进行检查
new Date().toLocaleTimeString()
答案 6 :(得分:1)
老问题,但是我遇到了类似的问题,无论如何我都会解决问题。
我所做的是在虚拟机中运行我的服务器,将网络设置设置为桥接,这样我就可以轻松地从主机操作系统访问服务器。
然后我更改了VM中的时间设置,以便客户端和服务器之间存在任何差异。
答案 7 :(得分:0)
您可能最好不要让计算机时区保持原样并更改服务器设置以反映您前方或后方的时区。根据您使用的服务器,这通常很容易做到。
答案 8 :(得分:0)
这是一种简单的方法,我试图改变时区并测试它为Windows 7 ^
我使用tzutil
tzutil /s "Eastern Standard Time"
并将其保存到合适的.bat
文件,例如Eastern_Standard_Time_zone.bat
,并使用default_time_zone.bat
保留原始系统时区,以便在完成测试后将其恢复。这将在闪烁时改变您的时区。
reference
答案 9 :(得分:0)
如果您喜欢再现性,我建议您使用 e2e 环境,即可以自动化浏览器并允许操纵其时区的工具。
这样你就不必摆弄系统时区,你可以添加测试,特别是使用不同的时区,即你可以在不同的时区测试你的代码。
最近流行的两个浏览器自动化库,Puppeteer 和 Playwright 明确允许设置时区。使用 Playwright,您可以为所有主要的常绿 浏览器(Safari、Firefox 和 Chrome / ChromeEdge)自动设置时区: