Angularjs 角度选择器时区-对于其他时区,selectedDate是从模式日期开始的前一天

Angularjs 角度选择器时区-对于其他时区,selectedDate是从模式日期开始的前一天,angularjs,datetime,timezone,Angularjs,Datetime,Timezone,角形选择器为我的当地时间工作。为了查看《环球时报》,我将时区改为“美国/丹佛”。现在选择的日期比今天的日期早一天(通过模式日期),所以它将“pickadate active”类应用于昨天。 我尝试用本地时区和UTC时区传递模式日期。我不知道为什么dateHelper.parseDate再次调用之前传递的剥离时区值,现在我的理解是$locale正在将剥离日期转换为UTC日期到本地日期。因此,当GMT-06:00时,所选日期在之前一个日期。 HTML DIV- 控制器-vm.date=moment(

角形选择器为我的当地时间工作。为了查看《环球时报》,我将时区改为“美国/丹佛”。现在选择的日期比今天的日期早一天(通过模式日期),所以它将“pickadate active”类应用于昨天。
我尝试用本地时区和UTC时区传递模式日期。我不知道为什么dateHelper.parseDate再次调用之前传递的剥离时区值,现在我的理解是$locale正在将剥离日期转换为UTC日期到本地日期。因此,当GMT-06:00时,所选日期在之前一个日期。

HTML DIV-

控制器-
vm.date=moment().tz(timeZoneName).format()

有人能建议一种方法来处理不同的时区与角度pickadate??谢谢

GIT指令URL-

parseDate函数根据GMT时区为date对象赋值,因此日期变少了一天。因此,我删除了直接为带有时区的传递日期字符串返回GMT日期的条件

if (angular.isDate(dateString) || angular.isDate(new Date(dateString))) {
new Date(dateString); }
现在转到下一个if块,使用正则表达式格式化日期,并在其中添加了此条件以处理日期字符串和日期对象-

if(typeof dateString == 'object') {
  dateString = (dateString['_d'])? dateString['_d']: dateString['_i'];  // being private (_d, _i) should be avoided but only way in mine case
  if(typeof dateString == 'object')  // returns Object by dateString['_d'] else string 
    dateString = dateString.getDate() +'-'+ dateString.getMonth() +'-' +dateString.getFullYear(); 
}

dateParts   = dateString.split(separator); // separator was "-" every time so making dateString with "-" in case it was object

面对同样的问题,你找到解决办法了吗?这个问题不属于我们的范畴。用angularjs代替你改正了,谢谢