我将date_work
设置为Date数据类型。但是,当我使用命令console.log(typeof master.date_work)
检查数据类型时,出于某种原因它会显示string
的类型。因此,当我使用getTime()
函数时,会发生这样的错误。如何将字符串数据类型更改为日期?
TypeError:master.date_work.getTime不是函数
型号:
export interface Masters {
master_id?: string,
full_name: string,
comment: string,
date_work: Date,
teams_id: string
}
ts:
reports: Rep4Hours[]
masters: Masters[]
teams: Teams[]
filteredTeams = []
filteredMasters = []
onSelectedReport(reportId) {
this.selectedReport = this.reports.find(
el => {
return el.report_id === reportId
}
)
if (this.teamsService) {
this.teamsService.fetch().subscribe(
team => {
this.teams = team
this.filteredTeams = this.teams.filter(
(team) => team.team_id == this.selectedReport.teams_id
)
if (this.mastersService) {
this.mastersService.fetch().subscribe(
master => {
this.filteredMasters = []
this.masters = master
for(let team of this.filteredTeams){
for(let master of this.masters){
if(master.teams_id == team.team_id){
if (Math.max(...this.masters.map(master => master.date_work.getTime()))) {
if (master.date_work <= this.selectedReport.report_date) {
this.filteredMasters.push(master)
}
}
}
}
}
}
)
}
}
)
}
}
答案 0 :(得分:0)
与xyz的答案互补,您的服务可以在javaScript的Date对象中转换“ data_work”。 (我想您已收到字符串格式的日期)
//Your masterService
fetch()
{
return this.httpClient.get(...)
.pipe(map(x=>
{...x, //all the properties of "x"
date_work:new Date(x.date_work) //but date_work, convert to Date object
}
))
}
答案 1 :(得分:-1)
您的数据date_work
的格式不是Date
。 Typescript无法保证传入的服务对象。
您的模型和服务返回对象之间存在不一致。当您将类映射到返回的对象打字稿时,将date_work
标注为日期,但是在实际数据中却不是。