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日期toLocaleString是否说明DST?_Javascript_Date_Timezone - Fatal编程技术网

Javascript日期toLocaleString是否说明DST?

Javascript日期toLocaleString是否说明DST?,javascript,date,timezone,Javascript,Date,Timezone,我已经用UTC设置了一个截止日期,如下所示,我想知道ToLocalString()方法在用户的本地机器上到底会对它做什么。例如,如果他们所在的时区能够识别夏令时,夏令时是否会被考虑在内?或者我需要插入额外的代码来检查用户的位置,然后确定显示的时间 当您使用“UTC”时,日期本身将是UTC格式,但是toLocaleString()考虑了客户机的区域设置,这意味着它将以字符串形式返回日期,并使用客户机的区域和区域设置(DST、日期/时间格式等)的典型更改进行更新。如JS文档所述:“toLocale

我已经用UTC设置了一个截止日期,如下所示,我想知道ToLocalString()方法在用户的本地机器上到底会对它做什么。例如,如果他们所在的时区能够识别夏令时,夏令时是否会被考虑在内?或者我需要插入额外的代码来检查用户的位置,然后确定显示的时间


当您使用“UTC”时,日期本身将是UTC格式,但是
toLocaleString()
考虑了客户机的区域设置,这意味着它将以字符串形式返回日期,并使用客户机的区域和区域设置(DST、日期/时间格式等)的典型更改进行更新。
如JS文档所述:“toLocaleString()方法使用区域设置将日期对象转换为字符串。“
如果您想避免这种情况,请使用
toutString()
方法。

我还建议您阅读该问题的公认解决方案,以避免(至少,尝试避免:)与JS、浏览器和区域设置相关的未来问题。

希望这有帮助

当您使用“UTC”时,日期本身将是UTC格式,但
toLocaleString()
将考虑客户的区域设置,这意味着它将以字符串形式返回日期,并使用客户的区域和区域设置(DST、日期/时间格式等)的所有典型更改进行更新。
正如JS文档所述:“toLocaleString()方法使用区域设置将日期对象转换为字符串。“
如果要避免此情况,请使用
toutString()
方法。

我还建议阅读要避免的问题的公认解决方案(至少,尝试避免:)与JS、浏览器和区域设置相关的未来问题。

希望这能有所帮助!

我们不知道
toLocaleString
方法到底做了什么():

此函数返回一个字符串值。字符串的内容为 取决于实施,但用于表示 以方便的、人类可读的形式显示当前时区 对应于主机环境的当前 地点

但是,大多数实现都将考虑DST,如果它在当前的本地时区中是活动的。对于你的例子,我得到了<代码>“Mittwoch,1。MAI 2013 18:15:”-< /P> 我是否需要插入额外的代码来检查用户的位置,然后确定显示的时间


我认为您可以信任
toLocaleString
-浏览器应该尊重用户的设置。如果您想手动执行,请查看。

我们不知道
toLocaleString
方法的具体功能():

此函数返回一个字符串值。字符串的内容为 取决于实施,但用于表示 以方便的、人类可读的形式显示当前时区 对应于主机环境的当前 地点

但是,大多数实现都将考虑DST,如果它在当前的本地时区中是活动的。对于你的例子,我得到了<代码>“Mittwoch,1。MAI 2013 18:15:”-< /P> 我是否需要插入额外的代码来检查用户的位置,然后确定显示的时间

我认为您可以信任
toLocaleString
-浏览器应该尊重用户的设置。如果您想手动执行,请签出。

一般来说,答案是肯定的。JavaScript将根据运行它的计算机的时区设置在适当的本地时间表示UTC值。这包括对然而,正如其他人所指出的,细节是特定于实现的

如果你想要一个一致的输出,我会使用一个库来格式化你的日期,而不是依赖默认的实现。最好的库(IMHO)是这样的。主页上的实例会让你知道它能做什么

更新

如果您正在传递要转换为正确本地时间的UTC值,并且该时间属于时区规则与当前时区规则不同的时段,则结果将无效。这是疯狂的,但却是真实的-根据ECMA规范的设计,通常情况下,答案是肯定的。JavaScript将表示e UTC值在适当的本地时间,该值基于其运行的计算机的时区设置。这包括DST的调整。但是,正如其他人所指出的,细节是具体实施的

如果你想要一个一致的输出,我会使用一个库来格式化你的日期,而不是依赖默认的实现。最好的库(IMHO)是这样的。主页上的实例会让你知道它能做什么

更新


如果您正在传递要转换为正确本地时间的UTC值,并且该时间属于时区规则与当前时区规则不同的时段,则结果将无效。这很疯狂,但却是正确的-并且根据ECMA规范的设计。阅读-

非常棒,谢谢。看起来像是我见过的最好的此类库看到Tooo.js如何处理不同的时区了吗?它还没有。Javascript只能在本地或UTC下工作。你可以传入不同的偏移量,但它们将在内部应用。你不能在输出时表示非本地、非UTC偏移量。看到了,谢谢。看起来像是我见过的最好的这种类型的库moment.js是否处理不同的时区?目前还没有。Javascript只能在本地或UTC下工作。您可以传入不同的偏移量,但它们将在内部应用。您不能在输出时表示非本地、非UTC偏移量。请参阅
var deadline = new Date('5/1/2013 ' + "16:15" + ' UTC');
alert(deadline.toLocaleString());