在js中创建一个忽略时区的Date



是否可以在js中创建一个不受时区影响的日期对象?例如,我想设置年"2015",月"03",日"31"。

var ex = new Date(2015,3,31);

如果我"打印"这个变量,现在它看起来像这样:

Fri May 01 2015 00:00:00 GMT+0200 (ora legale Europa occidentale)

第二天就变了。有可能避免这种情况吗?我如何创建一个日期对象,总是在每个时区相同?

我需要尽快在应用程序中包含此行为,并且我不能仅与字符串一起工作,因为我们必须使用与日期对象一起工作的日期拾取器插件(Bootstrap)。

Thanks in advance

是的!方法创建所有的Date对象。函数,则它们都将相对于标准UTC时区,即使用户的浏览器具有不同的时区集。

例如:

var ex = new Date( Date.UTC( 2015, 3, 31 ) );

这将为3/31/2015 UTC创建一个Date对象,并且在所有浏览器中保持一致,而不管它们的默认时区是什么。

内部,ex中的日期仍将在用户的本地时区进行转换。因此,如果你从它读取值,比如日期,它将是相对于用户的浏览器时间。

如果你需要以UTC格式读取时间,你可以这样做:

ex.getUTCYear(); // 2015
ex.getUTCMonth(); // 3
ex.getUTCDate(); // 31

这将返回UTC时间的值。

简短的回答是你不能。

Date对象只是系统时间设置的访问器(因此它将使用本地计算机时区)。然后,您可以通过使用getTimezoneOffset()减去本地时区来操作日期,或者使用setUTCHours()强制时间。

然而,如果你只能在你的应用程序中使用一个时区,你可以使用moment.js:

获取该特定时区的日期时间。

moment().tz("America/Los_Angeles").format();

相关内容

  • 没有找到相关文章

最新更新