gpt4 book ai didi

javascript - AngularJS 在发送到服务器之前将日期转换为 getTime()

转载 作者:行者123 更新时间:2023-11-28 15:24:04 24 4
gpt4 key购买 nike

我有一个使用 <input type="datetime-local" ng-bind="course.endDate".. 并设置模型变量的表单。在将日期发送到服务器之前,我必须将日期 2015-04-04T22:00:00.000Z 转换为 integer 给出的 getTime()

在 Controller 中我添加了这个: course.endDate = course.endDate.getTime(); 它适用于服务器端,但 Angular 在控制台中提示 this error 。 (如上所述,它有效,但我想避免错误)

Error: [ngModel:datefmt] Expected `1325458800000` to be a date
http://errors.angularjs.org/1.3.15/ngModel/datefmt?p0=1325458800000
at REGEX_STRING_REGEXP (angular.js:63)
at Array.<anonymous> (angular.js:19938)
at Object.ngModelWatch (angular.js:23419)
at Scope.$get.Scope.$digest (angular.js:14300)
at Scope.$get.Scope.$apply (angular.js:14571)
at done (angular.js:9698)
at completeRequest (angular.js:9888)
at XMLHttpRequest.requestLoaded (angular.js:9829)

那我该怎么办?

我的想法是添加一些在表单( formEndDate )中使用的字段并转换为服务器端的另一个字段( endDate = formEndDate.getTime() ),但这样服务器拒绝调用,因为不允许使用参数 formEndDate ,如果我删除 formEndDate 那么一切都会崩溃。

其他问题:当我从服务器获取数据时,我有一个整数需要转换为要在表单中使用的日期。所以在允许编辑之前我还必须转换日期。我怎样才能做到这一点? (获取的数据放入数组中,因此无需迭代整个数组即可进行转换,这是非常棒的)

解决方案

感谢两个答案(我设置了正确的第一个答案),我还(以某种方式)解决了编辑时表单的问题。我通过创建一个额外的字段并在编辑时将其用于表单来做到这一点(我进行内联编辑)。

我创建了一个要点 here

最佳答案

在将数据发送到服务器之前,复制并设置endDate。然后将副本发送到服务器:

var courseCopy = angular.copy(course);
courseCopy.endDate = courseCopy.endDate.getTime();

关于javascript - AngularJS 在发送到服务器之前将日期转换为 getTime(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29944918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com