Javascript 时区更改当前日期

Javascript 时区更改当前日期,javascript,momentjs,Javascript,Momentjs,我正在使用(moment.js)获取一周中的某一天。 我正在使用此方法创建日期对象: var keyDateObj = moment("2014-01-22 00:00:00 "+ "+0000", "YYYY-MM-DDThh:mm:ss.sTZD"); 但是,当我要求为不同时区(印度和美国)的同一日期设置isoWeekday()。 时区的结果不同 印度-3 美国-2 我的问题是,当日期相同时,一周中的哪一天会不同 UTC日期的工作日相对于时区。由于印度领先几个小时,而美国落后几个小时,

我正在使用(moment.js)获取一周中的某一天。 我正在使用此方法创建日期对象:

var keyDateObj = moment("2014-01-22 00:00:00 "+ "+0000", "YYYY-MM-DDThh:mm:ss.sTZD");
但是,当我要求为不同时区(印度和美国)的同一日期设置
isoWeekday()
。 时区的结果不同

  • 印度-3
  • 美国-2

我的问题是,当日期相同时,一周中的哪一天会不同

UTC日期的工作日相对于时区。由于印度领先几个小时,而美国落后几个小时,ISO工作日将有所不同(因为在各自的时区中,
实际上是不同的一天)

例如:

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

我在这两种情况下都使用了相同的日期“2014-01-22”,也使用了var keyDateObj=moment(“2014-01-22 00:00:00”+“+0000”,“YYYY-MM-DDThh:MM:ss.sTZD”);返回两个区域的相同日期。所以我的问题是,如果日期是相同的,那么时区如何影响isoWeekday?您的代码只生成一个UTC时间戳,这与任何时区无关。(因此,“为两个时区返回相同的日期”是一个没有任何意义的语句。)但是,一旦您在不同的本地时区中解释了UTC timstamp,您自然会得到这些差异,因为在同一个时间点上,美国和印度的当地时间是不同的。@CBroe有什么解决办法吗。我有一个日期字符串,我只需要得到与日期对应的日期(不应考虑时区)。@Techie有一个解决方案。使用时区。如果不使用时区,就不可能得到正确的日期。您显示的代码没有说明您描述的问题。为了完全理解您的要求,请提供演示问题的代码。