它正在在Android和浏览器上工作,并且正在iOS(离子视图和设备)上工作。我将日期保存在我的本地存储(import { Storage } from '@ionic/storage';
)中,然后将其与另一个日期进行比较
这是我在任何地方都在做的事情,但是突然,而不是离子视图下的iOS。上次测试是2周前的最大测试,并且按预期工作!
this.storage.get(filename).then((metadata_stored) => {
if (metadata_stored && metadata_stored.date && metadata_stored.date.getTime() === filedate.getTime())
//do something
我得到TypeError: metadata_stored.date.getTime() is not a function; metadata_stored.date.getTime is undefined
。
filedate是通过此类filedate: Date = new date("2017-10-14T15:44:48+02:00")
(据称是ISO)创建的。然后将其保存在我的本地存储中:this.storage.set(filename, { /* ... */ , date: filedate })
如果我显示metadata_stored.data,我会得到诸如2017-08-13T13:44:10.000Z
我不明白为什么突然而默默停止工作。以及如何纠正它,因为元素是元素和归档的旧值是 new Date(...)
!在过去的2周中,本节没有更改代码。
编辑:我改用(new Date(metadata_stored.date)).getTime()
解决了它。但是我仍然不知道为什么它无缘无故停止工作 ...
在本地存储中,一切都存储为字符串。
这意味着您应该使用(new Date(metadata_stored.date)).getTime()
,因为metadata_stored.date
是string
,而不是Date
。
let a = new Date();
let b = new Date();
// 2017-11-30T18:01:01457Z object
console.log(a, typeof a);
// 2017-11-30T18:01:01457Z object
console.log(b, typeof b);
localStorage.a = a;
localStorage.b = b;
a = localStorage.a;
b = localStorage.b;
// Thu Nov 30 18:01:01 GMT+0000 (GMT Standard Time) string
console.log(a, typeof a);
// Thu Nov 30 18:01:01 GMT+0000 (GMT Standard Time) string
console.log(b, typeof b);
a = new Date(localStorage.b);
b = new Date(localStorage.a);
// 2017-11-30T18:01:01457Z object
console.log(a, typeof a);
// 2017-11-30T18:01:01457Z object
console.log(b, typeof b);