Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 日期(根据地区分配)_Javascript_Date_Discord_Discord.js - Fatal编程技术网

Javascript 日期(根据地区分配)

Javascript 日期(根据地区分配),javascript,date,discord,discord.js,Javascript,Date,Discord,Discord.js,这是我的一串,告诉我地区、时间和日期。我在一个discord机器人上使用它,并试图根据用户所在的区域使它们有所不同。我不知道如何做到这一点,但以视觉为例 上述代码返回给我- var d = new Date(); "**Zone** - `" + d.toTimeString().replace(/\d+:\d+:\d+\s+/, '').replace(/[G][M][T].\d+/, '') + "` **Time** - " + "`" + d.toL

这是我的一串,告诉我地区、时间和日期。我在一个discord机器人上使用它,并试图根据用户所在的区域使它们有所不同。我不知道如何做到这一点,但以视觉为例

上述代码返回给我-

 var d = new Date();
    "**Zone** - `" + 
    d.toTimeString().replace(/\d+:\d+:\d+\s+/, '').replace(/[G][M][T].\d+/, '') + 
    "` **Time** - " +
    "`" + d.toLocaleTimeString() +
    "` **Date** - " + "`" + 
    d.toLocaleDateString() + "`"
我很满意,但是,在一次测试中,我让一个外国朋友加入,当我试图让结果是他们所在的地区时,它发送了同样的信息,所以

Zone - (AUS Eastern Standard Time) Time - 16:49:28 Date - 2018-5-18
有人有什么想法吗

EDIT:在我的一个新项目中,我发现了
Intl.DateTimeFormat()
的用户,它本质上返回一个数组。此函数有一个名为
.resolvedOptions()
的实例方法,它返回一个包含许多值的对象。我只是继续添加了
.timezone
,它返回了类似于“澳大利亚/昆士兰”的内容。
var region=Intl.DateTimeFormat().resolvedOptions().timeZone

我假设此代码在浏览器中运行,而不是在服务器中运行

您不能依靠
d.toTimeString()
和剪切时区部分来查找时区,
toTimeString
可以在不同的浏览器上返回不同的格式。规范将格式设置留给了浏览器供应商

您可以获取
timezoneOffset
并将其映射到时区名称,但请稍候,出现问题。这可能与区域的日光节约时间设置冲突。所以你们需要一组全世界夏令时的历史数据


如果您确实想这样做,请使用,它可以为您执行查找,并且他们已经为您创建了包括DST在内的所有映射。

此代码是运行在服务器端还是客户端?例如。如果它是由Node.js在某台服务器上运行的,那么每个服务器的结果都是相同的,因为JavaScript占用服务器的时间。在Discord服务器中,您如何知道用户来自哪个区域?你有没有关于这些信息的数据库?因为这不是可以直接从Discord API访问的。这是针对Discord机器人的。我不相信你可以在浏览器上运行bot。请注意,这将指定和的格式,尽管在使用中的浏览器支持无处不在可能需要一段时间。
Zone - (AMERICA Western Standard Time) Time - 02:29:09 Date - 2018-5-18