类型错误:formats.dateTimeString.toISOString 不是一个函数
我是 TypeScript 和 AngularJS 的新手,我正在尝试将 API 中的日期转换为类似这样的格式:
"8/22/2015"
... 转换为 ISO 日期。该日期已正确反序列化为
Date
类型的 TypeScript 属性。但是,当我尝试以下命令(在 typescript 中,并且
this.dateDisplay
是字符串类型)时
this.dateDisplay = formats.dateTimeValue.toISOString();
我收到错误:
TypeError: formats.dateTimeValue.toISOString is not a function at dataFormatsTests.js:42 at processQueue (angular.js:14567) at angular.js:14583 at Scope.$get.Scope.$eval (angular.js:15846) at Scope.$get.Scope.$digest (angular.js:15657) at Scope.$get.Scope.$apply (angular.js:15951) at done (angular.js:10364) at completeRequest (angular.js:10536) at XMLHttpRequest.requestLoaded (angular.js:10477)
我也去过
这个网站
并且它说我的浏览器支持
toISOString
函数。
所以,我的问题是:为什么我的浏览器、angular 或其他什么都无法识别
toISOString
函数?
尽管 dateTimeValue 在 TypeScript 中被定义为日期,但它在运行时被实例化为字符串,因为它是从 API 中提取的。因此,TypeScript 可以正常编译,但当 javascript 运行时,它会看到
.toISOString()
被调用针对的是字符串,而不是日期。
moment.js为date object.formats.datetimeValue创建包装器不是包装对象。要获取此包装器对象,只需使用支持的输入类型之一调用Moment()。因此,请这样转换:
818814299
我已经解决了上述问题。