Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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

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_Timestamp_Timezone Offset - Fatal编程技术网

Javascript 转换带有日期()的时区的具有指定偏移量的时间戳;

Javascript 转换带有日期()的时区的具有指定偏移量的时间戳;,javascript,date,timestamp,timezone-offset,Javascript,Date,Timestamp,Timezone Offset,我一直在尽可能多地挖掘我能找到的东西,但我似乎找不到我要找的东西,所以我得出结论,我要么不知道我要找的是什么,要么这是不可能的。不管怎样 我试图实现的是以一个时间戳为例:137343960000和一个给定的偏移量-12到12(就范围而言,这是正确的吗?),因此我可以将上面的时间戳相应地减去,并将新的时间戳传递给Date()函数,这样我就可以对其进行操作,使其显示为人类可读 偏移量由两部分组成,在一个实例中由用户指定,而在另一个实例中,如果未指定,则默认为本地getTimezoneOffset()

我一直在尽可能多地挖掘我能找到的东西,但我似乎找不到我要找的东西,所以我得出结论,我要么不知道我要找的是什么,要么这是不可能的。不管怎样

我试图实现的是以一个时间戳为例:
137343960000
和一个给定的偏移量-12到12(就范围而言,这是正确的吗?),因此我可以将上面的时间戳相应地减去,并将新的时间戳传递给
Date()
函数,这样我就可以对其进行操作,使其显示为人类可读

偏移量由两部分组成,在一个实例中由用户指定,而在另一个实例中,如果未指定,则默认为本地
getTimezoneOffset()
。所以试着找出如何利用这个范围。做每件事都要相应

想法?我是不是在一个正确的庄园里接近这个


我正在使用的时间戳已经是UTC,不确定这会有什么不同。

不幸的是,
日期
对象没有为使用时区提供便利。如果您有偏移量,那么您应该能够以毫秒为单位计算偏移量。然后,您可以将该值添加(减去?)到时间戳中,并使用它来构造适当的
日期


这有帮助吗?

JavaScript
Date
类型有很多问题,但它的一个主要怪癖是它只理解两个时区——UTC或本地。它在内部以及某些属性和函数中使用UTC,如
.toutString()
,但在其他情况下使用本地时区

许多浏览器在解析字符串中的
日期
时都会接受偏移量,但这仅用于设置UTC时间。任何正在离开的东西都将再次转换回本地时区

幸运的是,有一些很棒的库可以解决这些问题。非常适合这种情况。以下是您可能正在寻找的示例:

moment(1373439600000).zone(8).format("YYYY-MM-DD HH:mm:ss Z")

//  output: "2013-07-09 23:00:00 -08:00"
当然,您可以根据需要进行格式化,或者传入更复杂的区域偏移量,如
“+05:30”
。如果您需要使用实际的IANA时区,有一个配套项目,您可以这样做:

moment(1373439600000).tz('America/New_York').format("YYYY-MM-DD HH:mm:ss Z")

//  output: "2013-07-10 03:00:00 -04:00"

这并不是我的总体方向,自从我提出这个问题以来一直如此。我目前的问题是计算要分别从时间戳中加/减的偏移量。现在,当我使用
getTimezoneOffset()
时,返回的值是
420
,我试图弄清楚这是如何应用的?如果我想做任何事情,如果没有,我应该做什么来获取给定的范围并根据该范围计算正确的偏移量。很难确切理解您要做什么,但根据文档,
getTimezoneOffset()
以分钟为单位返回本地时区偏移量,所以你需要将它转换成毫秒,并相应地应用到你的时间戳上。分钟,doh,我一定已经略过了。总的来说,我要做的是取范围-12到12,然后我猜在这一点上乘以60,再乘以60000,然后从当前时间戳中加/减,以显示该范围内的时间。总的来说。我们希望它根据用户当前时区中提供的时间戳显示,但为用户提供一个偏移量,这样,如果他们与其他时区的人通信,他们可以相应地切换以同步。然而,用户界面主要由JavaScript处理,它是一个需要调用的大型数据集