角度日期管道在格式化日期后在iphone/ios上显示NaN

角度日期管道在格式化日期后在iphone/ios上显示NaN,ios,angular,date,progressive-web-apps,Ios,Angular,Date,Progressive Web Apps,我正在做一个角度8/5的PWA。用户可以创建事件并将其列在提要页面上。问题是,每个事件的日期和时间都没有显示出来,在iPhone/iOS设备上显示错误“NaN”。date和time都从start\u at获取信息,该时间的格式为“hh:mm:ss” 以下代码显示了我们如何从MySQL php laravel服务器接收响应数据,以列出事件: getTodos() { console.log("arrived to gettodos"); var id = thi

我正在做一个角度8/5的PWA。用户可以创建事件并将其列在提要页面上。问题是,每个事件的
日期
时间
都没有显示出来,在iPhone/iOS设备上显示错误“NaN”。
date
time
都从
start\u at
获取信息,该时间的格式为“hh:mm:ss”

以下代码显示了我们如何从MySQL php laravel服务器接收响应数据,以列出事件:

getTodos() {
    console.log("arrived to gettodos");
    var id = this.userInfo.id
    this.todoService.getTodos('', '', '', id, false).subscribe(res => {
      console.log("res", res);
      console.log("frimes", res['frimes']);
      // debugger;
      // console.log(res);
      if (res['code'] === 200) {
        // console.log(res['data']);
        const userFrimes: any[] = res['frimes'];
        this.todos = [] as any[];
        console.log(userFrimes);
        if (userFrimes && userFrimes.length > 0) {
          userFrimes.forEach(uf => {
            var timeofFrime = this.formatAMPM(uf.start_at);
            if (!this.todoService.isFrimeExpired(uf.start_at)) {
              this.todos.push({
                owner: this.userInfo.username,
                title: uf.title,
                message: uf.description,
                date: uf.start_at,
                time: timeofFrime,
                max: uf.max,
                guests: uf.member.length, //uf.guests == null ? 0 : uf.guests,
                frime_id: uf.id,
                status: uf.status,
                user_id: uf.user_id
              });
            }
          });
        }
      } else if (res['code'] === 205) {

      } else if (res['code'] === 401) {

      }
    }, err => {

      //this.errorMessage = err.message;
      console.log(err);
    });

  }
在这里,您可以看到正在为formatAMPM()函数提取属性
date
time
,并将其更改为AM/PM日期格式

  formatAMPM(d) {
    let dd = d + " UTC";
    let date = new Date(dd);
    var hours = date.getHours();
    var minutes = date.getMinutes();
    var ampm = hours >= 12 ? 'PM' : 'AM';
    hours = hours % 12;
    hours = hours ? hours : 12; // the hour '0' should be '12'
    var min = minutes < 10 ? '0' + minutes : minutes;
    var strTime = hours + ':' + min + ' ' + ampm;
    return strTime;
  }
formatAMPM(d){
设dd=d+“UTC”;
出租日期=新日期(dd);
var hours=date.getHours();
var minutes=date.getMinutes();
var ampm=小时数>=12?“下午”:“上午”;
小时数=小时数%12;
小时数=小时数?小时数:12;//小时数“0”应为“12”
var min=分钟<10?'0'+分钟:分钟;
变量strTime=hours+':'+min+'+ampm;
返回时间;
}
此处,最终日期字符串显示在管道字段中,其中显示ios上的“NaN”错误。 错误本身表明:

错误:InvalidPipeArgument:'无法将管道'Re'的“2021-05-19 17:15:38”转换为日期'

顺便说一句,“Re”是什么意思

            <ion-col size="3" class="date-wrapper">
              <h3 class="notification-date">
                {{ item.date | date: "shortDate" }}
              </h3>
              <h3 class="notification-date">
                {{ item.time | date: "HH:mm" }}
              </h3>
              <h3 class="notification-date">{{ item.guests + '/' + item.max }}</h3>
            </ion-col>

{{item.date}date:“shortDate”}
{{item.time}日期:“HH:mm”}
{{item.guests+'/'+item.max}
希望你能帮我解决这个问题,因为这让我最近很头疼。。。
提前谢谢

好的,我通过添加这行代码修复了它:

    d = d.replace(" ", "T");
日期的格式类似于
dd-MM-yyyyyy-HH:MM:ss
,我需要添加“T”,因此它类似于
dd-MM-yyyyyyy-HH:MM:ss

  formatAMPM(d) {
    d = d.replace(" ", "T");
    let dd = d + " UTC";
    let date = new Date(dd);
    var hours = date.getHours();
    var minutes = date.getMinutes();
    var ampm = hours >= 12 ? 'PM' : 'AM';
    hours = hours % 12;
    hours = hours ? hours : 12; // the hour '0' should be '12'
    var min = minutes < 10 ? '0' + minutes : minutes;
    var strTime = hours + ':' + min + ' ' + ampm;
    return strTime;
  }
formatAMPM(d){
d=d。替换(“,”T”);
设dd=d+“UTC”;
出租日期=新日期(dd);
var hours=date.getHours();
var minutes=date.getMinutes();
var ampm=小时数>=12?“下午”:“上午”;
小时数=小时数%12;
小时数=小时数?小时数:12;//小时数“0”应为“12”
var min=分钟<10?'0'+分钟:分钟;
变量strTime=hours+':'+min+'+ampm;
返回时间;
}

Date管道接收时间戳(数字)、日期对象或ISO(),请仔细检查字符串是否与ISO格式兼容谢谢!我相信这可能不是真正的问题,因为我现在可以正确显示日期,但在formatAMPM()函数中,它无法读取函数var hours=date.getHours();var minutes=date.getMinutes();