Javascript 角度数据选择器完全不符合预期

Javascript 角度数据选择器完全不符合预期,javascript,angularjs,angular-ui-bootstrap,momentjs,Javascript,Angularjs,Angular Ui Bootstrap,Momentjs,我在挑选约会对象的问题上遇到了致命的混乱 谁能解决我的问题我可以给100分作为回报 当我在2016-08-23单击日历时,它将显示2016-08-22作为日期值 此外,角度模型中的数据值也不正确 我想使输出能够一致 要重现问题,请更改洛杉矶和东京之间的时区 演示站点: 控制器js helper.js 这可能是因为时区问题。 你能试着不考虑时区而转换成日期吗 this.convertToDateWithoutTimezone = function (date) { if

我在挑选约会对象的问题上遇到了致命的混乱

谁能解决我的问题我可以给100分作为回报

当我在2016-08-23单击日历时,它将显示2016-08-22作为日期值

此外,角度模型中的数据值也不正确

我想使输出能够一致

要重现问题,请更改洛杉矶和东京之间的时区

演示站点:

控制器js helper.js
这可能是因为时区问题。 你能试着不考虑时区而转换成日期吗

this.convertToDateWithoutTimezone = function (date) {
            if (date.toString().match(/(\d\d\d\d)-(\d\d)-(\d\d)/)) {
                var year = $filter('date')(date.slice(0, 10), 'yyyy'),
                    month = $filter('date')(date.slice(0, 10), 'MM'),
                    day = $filter('date')(date.slice(0, 10), 'dd');
                return new Date(year, month - 1, day);
            }
            else {
                return new Date(date);
            }

})

这可能是因为时区问题。 你能试着不考虑时区而转换成日期吗

this.convertToDateWithoutTimezone = function (date) {
            if (date.toString().match(/(\d\d\d\d)-(\d\d)-(\d\d)/)) {
                var year = $filter('date')(date.slice(0, 10), 'yyyy'),
                    month = $filter('date')(date.slice(0, 10), 'MM'),
                    day = $filter('date')(date.slice(0, 10), 'dd');
                return new Date(year, month - 1, day);
            }
            else {
                return new Date(date);
            }

})

也许这是
时刻的问题
而不是
日期选择器的问题
。听起来像是时区问题,洛杉矶是UTC-0800,东京目前是UTC+0900,所以东京到17:00是洛杉矶的前一天。不应该发生这种奇怪的问题,对吗?这完全是一个错误的输出,尽管它可能与时区有关:(可能是
时刻
中的问题,而不是
日期选择器
中的问题。听起来像是时区问题,洛杉矶是UTC-0800,东京目前是UTC+0900,所以东京到17:00是洛杉矶的前一天。不应该发生这种奇怪的问题,对吗?这完全是一个错误输出,尽管它可能与时区有关:(我稍后会尝试您的解决方案,谢谢您的支持:dw输入的日期格式是什么?您获得的aftr转换是什么?我稍后会尝试您的解决方案,谢谢您的支持:dw输入的日期格式是什么?您获得的aftr转换是什么?
this.convertToDateWithoutTimezone = function (date) {
            if (date.toString().match(/(\d\d\d\d)-(\d\d)-(\d\d)/)) {
                var year = $filter('date')(date.slice(0, 10), 'yyyy'),
                    month = $filter('date')(date.slice(0, 10), 'MM'),
                    day = $filter('date')(date.slice(0, 10), 'dd');
                return new Date(year, month - 1, day);
            }
            else {
                return new Date(date);
            }