【问题标题】:Ionic2-Calendar now failing on the deviceIonic2-Calendar 现在在设备上失败
【发布时间】:2019-10-22 12:05:53
【问题描述】:

我正在使用 Angular 8 开发一个基于 Ionic 4 的应用程序,并且出现了一个奇怪的情况。我正在使用this calendar

它似乎类似于this issue... 你会看到我在那里发表评论询问他们如何解决它无济于事。

它在使用 ionic -serve 的浏览器上运行良好,并且 WAS 在我的 android 设备上运行良好(我还没有进入 iOS)。 上周我的手机有一个安卓更新,从那以后,日历页面就不再工作了。 我已经剥离了大部分代码并将其简化到它(几乎)现在可以工作的程度,但我必须删除数据源对象。 这使我相信我之前在格式不正确时发现的数据源中的数据有问题。但是,我不确定这是否是问题所在。 startTime 和 endTimes 来自服务器,由 ISO 字符串转换而来,如下所示:

  fixAppointmentTimesFromServer(appointment: Appointment) {
    appointment.startTime = new Date(appointment.StartTimeServer);
    appointment.endTime =  new Date(appointment.EndTimeServer);
  }

如果我像这样注销 appoinmtents 数组中的对象类型:

this.userService.appointments.forEach( appt => {
  console.log(appt.startTime);
  console.log(typeof (appt.startTime));
  console.log(appt.endTime);
  console.log(typeof (appt.endTime));
});

它将开始/结束时间显示为字符串,所以我想知道这是否是问题所在,或者这只是 JS Date 对象的更多谜团......?

或者,如果有人能告诉我如何真正找到并进入日历模块进行调试,那可能会有所帮助?

我添加了一个额外的:

    this.platform.ready().then( res => {
      ...

在 ngOninit() 的开头。

整个开始/结束时间的事情可能只是一个红鲱鱼...... 有什么想法吗?谢谢

【问题讨论】:

  • 你在真正的安卓设备上试过哪个安卓版本?
  • 我的手机现在运行的是 Android 9。Tbh,不确定之前是什么。操作系统是否有一些我应该注意的变化?

标签: android angular cordova ionic-framework


【解决方案1】:

我在这里回答我自己的问题,因为我不希望其他人遇到与我相同的问题。

我为 ionic2 日历修复日期的方式(显然)是不够的,因为它需要一个基于毫秒的日期对象才能正常工作。不同浏览器版本的操作方式似乎不同。

所以,我现在从服务器修复日期的方式如下:

  fixAppointmentTimesFromServer(appointment: Appointment) {
    const start = new Date(appointment.StartTimeServer);
    const end = new Date(appointment.EndTimeServer);
    appointment.startTime = new Date(Date.UTC(start.getFullYear(), start.getMonth(), 
    start.getDate(), start.getHours(), start.getMinutes()));
    appointment.endTime = new Date(Date.UTC(end.getFullYear(), end.getMonth(), end.getDate(), end.getHours(), end.getMinutes()));
  }

这首先转换为字符串,然后再次转换以获取基于 UTC(毫秒)的 Date 对象。哪个有效。

但请注意:

我发现当我没有从服务器获取数据,而是使用已经从 Ionic Storage 转换的数据时,它又坏了。这需要我在获取时重新转换数据它没有存储空间。所以,这对于 JS 来说并不是什么“服务器上的有趣约会”,而且是一个完美的例子,说明了 Javascript 实际上是多么完美!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    • 2018-04-30
    • 1970-01-01
    相关资源
    最近更新 更多