如何在浏览器中使用自定义时间来测试客户端与服务器的时差

Mar*_*elo 51 browser timezone

我刚刚编写了一段代码来显示网页中的服务器时间.目前我只有一台机器,所以我无法测试代码是否正常工作.

有没有办法告诉浏览器使用与操作系统中配置的时间配置不同的时间配置?我已经使用Firefox的插件来测试不同的语言环境,我想知道是否有类似的时间测试选项.

谢谢.

Ben*_*pel 114

为单独的Chrome用户个人资料创建新的空目录.例如

mkdir ~/chrome-profile
Run Code Online (Sandbox Code Playgroud)

您指定TZ环境变量.你可以看到,例如有效的时区在这里,在列TZ.

要启动Chrome,请使用以下命令:

  • 对于Mac OS X: TZ='US/Pacific' open -na "Google Chrome" --args "--user-data-dir=$HOME/chrome-profile"
  • 对于Linux: TZ='US/Pacific' google-chrome "--user-data-dir=$HOME/chrome-profile"

  • 对我来说,在Mac OSX上,必须输入完整路径而不是〜/ chrome-profile快捷方式,但除此之外效果很好!这应该是公认的答案...... (6认同)
  • 解决核心问题的神奇答案,不需要更改操作系统时区.而且,是的,这应该是公认的答案,因为它可以通过Chrome进行测试来解决OP的问题. (3认同)
  • 我不需要镀铬型材部件.我只是在macos上运行`TZ ='美国/太平洋'开放-na"Google Chrome"--args`.工作得很好 (3认同)
  • 我怎么能在Windows上这样做? (3认同)

Mar*_*cos 40

在 2021 年,您无需更改操作系统变量或扩展即可执行此操作。

Chrome 开发工具 > 汉堡菜单 > 更多工具 > 传感器

在位置部分选择您的位置或为其提供时区 ID(例如美国/芝加哥、美国/纽约) 在此输入图像描述


Mat*_*int 21

不幸的是,JavaScript只知道当前时区,因为它是由操作系统设置的.没有任何工具可以让Date对象在特定上下文中使用不同的时区.有一些库可以进行时区转换,但这对您提出的问题没有帮助.

在Linux,Mac OSX和其他*NIX系统上,您可以设置TZ环境变量.有关详细信息,请参阅BenediktKöppel的答案.

但是,Windows上没有此功能. 某些 Windows程序可能会接收TZ环境变量,但那些不一定会正确解释它,因为它们没有连接到支持IANA时区名称.更多关于这里这里.

  • Chrome 45现在立即更新时区,但Firefox 40仍然没有...我希望永远不会改变,否则我们就搞砸了!愚蠢的时区!开发者瘟疫.. (11认同)
  • @Pacerier不再.Chrome将立即***检测您的操作系统的时区设置.示例:在控制台中,输入`new Date()`.更改您的时区.再次在控制台中输入`new Date()`.每个日期都会显示您在更改之前和之后设置的时区. (4认同)

kon*_*ity 8

在流行的需求(开玩笑!),解释.

谷歌浏览器会读取环境变量以获取其运行的时区.显然,所有Chrome实例都共享该值(未经过测试).为了强制时区,我们需要a)将环境变量设置为我们想要的时区,b)杀死所有现有Chrome实例,c)打印当前时区进行确认,以及d)使用预期时区启动Chrome.

下面的shell脚本是使用OS X测试的,但也适用于其他人.

export TZ='US/Pacific'

killall Chrome
date
open /Applications/Google\ Chrome.app
Run Code Online (Sandbox Code Playgroud)

  • 虽然此代码示例可能会回答问题,但最好在答案中包含一些必要的解释.现在看来,这个答案对未来的读者几乎没有任何价值. (3认同)
  • @Pacerier如此以粗体显示的`killall'会解释为什么它很危险,甚至警告人们这很危险...? (3认同)

Mus*_*ala 6

只要您在 Windows 中更改时区,Chrome 似乎就会更新其时区。Firefox 似乎在启动时存储系统的时区值。

使用 Visual Studio,您似乎可以扭转乾坤。似乎只有在您第一次启动调试过程时才会读取时区。所以就我而言,我所做的是将时区设置为例如东部标准时间。启动 Visual Studio 调试器。然后我将时区更改为例如太平洋标准时间。此时的服务器仍处于东部时区,而我的浏览器处于太平洋时区。现在我能够很好地测试客户端浏览器的行为。

如果你想在日本测试一个客户端,那么只需更新你的时区,浏览器就会跟随它。只要您不重新启动调试过程,您的服务器时区就不会改变。也只是改变时间(而不是时区)不起作用。


Siv*_*nan 5

有很多时区扩展可用于在浏览器级别进行欺骗。我目前正在使用 在此输入图像描述

添加扩展程序的单击选项并检查后 在此输入图像描述

完成这两项操作后,转到任何网站并打开开发人员工具并通过执行以下命令进行检查

new Date().toLocaleTimeString()
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

58675 次

最近记录:

5 年,11 月 前