2014-01-22 82 views
-1

我正在使用(moment.js)来获取星期几。 我使用这种方法来创建一个日期对象:TimeZone更改当天

var keyDateObj = moment("2014-01-22 00:00:00 "+ "+0000", "YYYY-MM-DDThh:mm:ss.sTZD"); 

但是,当我问了isoWeekday()为同一日不同的时区(印度和美国)。 结果是对的时区不同

  • 印度 - 3
  • USA - 2

我的问题是,当日期是相同的星期几怎么能是不同的。

+0

告诉你不能证明你所描述的问题的代码如下表示。为了充分了解您所问的内容,请提供说明问题的代码。 –

回答

0

作为UTC给定日期的工作日是相对于时区。由于印度提前了几个小时,而美国则落后了几个小时,因此ISO的工作日将有所不同(因为在各个时区,实际上is是不同的一天)。

例子:

2014-01-22 00:00:00 +0000 // this means it is January 22 in London for example 
// the weekday is Wednesday 

对美国东海岸

2014-01-21 19:00:00 -0500 // this means it is January 21 in New York at the "same time" 
// the weekday is Tuesday 
+0

我在这两种情况下都使用了相同的日期“2014-01-22”,并且var keyDateObj = moment(“2014-01-22 00:00:00”+“+0000”,“YYYY-MM-DDThh:毫米:ss.sTZD“);返回两个区域的相同日期。所以我的问题是,如果日期是相同的,那么iso时代周日的时区效果如何呢? –

+0

您的代码只生成_one_ UTC时间戳,并且这是任何时区的独立。 (所以_“返回同一日期的两个区域”_是一个没有任何意义的声明。)一旦你有不同的本地时区这个UTC timstamp _interpreted_,但你会得到这些差异 - 当然,因为在一个和美国和印度的本地时间在相同的实际时间点是不同的。 – CBroe

+0

@Croro有没有解决方案。我有一个日期字符串,我需要得到日期相应的日期(时区不应该考虑)。 –